80386保护模式编程模型

80386保护模式编程深入指南 本文还有配套的精品资源,点击获取 简介:80386处理器在保护模式下为现代操作系统提供了基础,实现了内存保护、多任务处理和虚拟内存等特性。本文深入探讨保护模式的概念、80386架构及其保护模式编程,包括启动保护模式、内存管理机制、内存保护、多任务处理、中断与异常处理、编程实践和系统调用等方面。 1. 保护模式概念 1.1 保护模式的定义 保护模式是x8... 阅读详情

一、概述

所谓的保护模式就是在此模式下,CPU利用对虚拟地址的支持为系统资源(内存,I/O等)提供不同的权限级别,操作系统和用户程序的权限不同,所能访问的资源也不同,同时虚拟地址也进程资源共享,进程管理提供了有力支持。

二、保护模式下的段机制

2.1、段寻址

保护模式下的段机制和实模式下是大相径庭的,在保护模式下,虚拟地址也以段来管理,举例如下:

mov eax fs:[12345678h]的含义是寻址fs对应的段的偏移量为12345678h的双字,其实这里的fs寄存器里的值并不是实模式下的段基址的意义,而是一个段描述符表中的索引值和其他信息,称作段选择子,段选择子结构见下图:

* INDEX,寻址段描述符在段描述表中的索引

* TI=0,表示段描述符在全局描述符表中,1表示在局部描述附表中

* RPL,表示此段的权限,当此段为代码段时,RPL就是CPL,值越小权限越大(操作系统内核0级,操作系统其他部分1级,中间层2级,用户程序3级)

* 描述符的查找有高速缓冲支持。

2.2、段描述

段描述表分为全局描述附表GDT(描述操作系统等全局共享的段)和局部描述符表LDT(任务私有的段),描述符表中的每一项都占用8个字节,描述符表中占用的段分为3中,系统段,存储段及门。

◆ 系统段和存储段有着相同的描述结构,见下图:

* 如上图所示,段基址和段界限以及粒度(G)设定了段的起始地址,大小,当G=1时表示粒度为4KB,段的大小可以是4GB,段基址用32位表示是没有粒度要求的。

* DT=1时表示此段是存储段,是程序可以直接访问的段,DT=0是表示此段是操作系统维护的段。

* DPL表示段的访问权限

* P=1时表示此段无效

* AVL,Intel未规定,软件可利用

* D在存储段的情况下,又分为如下3中情况(此位在系统段中不使用):

   ** 当此段是可执行段时,D=1标志指令默认工作在32位模式,否则工作在16位模式。

   ** 当此段是向下扩展段时,D=1表示段的上部边界为4GB,否则为64K。

   ** 当此段是SS指向的段时(堆栈段),D=1表示PUSH,POP工作在32位模式,否则工作在16位模式。

*TYPE

  **存储段的访问属性,见下图。

**系统段和门的属性见下图:

◆ 门段的结构图如下所示:

2.3、段访问

◆ 控制寄存器如下图所示:

* CRO

PG=0,PE=0时,实模式

PG=0,PE=1时,保护模式,无分页机制(虚拟地址直接对应物理地址)

PG=1,PE=0时,非法

PG=1,PE=1时,保护模式,启用分页机制

* CR1 保留

* CR2 页故障线性地址

* CR3 的高20位是也目录表起始地址,低20位为0。

GDTR保存全局描述符表的起始地址和界限,粒度为字节。

IDTR保存中断描述符秒的起始地址和界限,粒度为字节

LDTR保存局部描述符表在GDT中的段选择子,有高速缓冲支持。

TR保存任务状态段在GDT中的段选择子,有高速缓冲支持。

三、保护模式下的页机制

参见本博客的80x86的内存组织

保护模式下的80386及其编程 扫描版 pdf 保护模式下的80386及其编程 pdf,扫描版的 立即下载

相关推荐

笔记_保护模式下的80386编程.pdf

笔记_保护模式下的80386编程

80386的寄存器 摘

 80386的寄存器可以分为8组:通用寄存器,段寄存器,指令指针寄存器,标志寄存器,系统地址寄存器,控制寄存器,调试寄存器,测试寄存器,它们的宽度都是32位的。本篇主要介绍80386的寄存器。    A1.General Register(通用寄存器)    EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP,它们的低16位就是8086的AX,BX,CX,DX,SI,DI,SP,BP,

nature 649

深入80386 保护模式编程之学习笔记.pdf

深入80386 保护模式编程之学习笔记,对保护模式有较为详细的讲解。

《Programming the 80386》与《保护方式下的80386及其编程》

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33923148的博客 1661

保护方式下80386及其编程

超星pdg<br><br>保护方式下80386及其编程<br><br>

保护方式下的80386及其编程.rar

保护方式下的80386及其编程.rar

intel386中文译稿(转)

hzqt210的专栏 1240

保护方式下的80386及其编程

介绍x86保护模式编程的一本难得的好书。 本书全面地介绍了80386的结构。首先是80386实模式和保护模式下的寄存器集和指令集,接着从保护模式下的虚存管理、保护级、多任务支持、中断和异常等方面深入地剖析386的强大功能,再接着提供几个典型的编程实例以及一个完整的从386加电初始化开始到形成一个有基本的多任务和虚拟存储能力的系统的例子并作了详细解释,最后还清楚地说明了80386与8086/80286的兼容性和差别。本书的特点是严谨深入,对CPU各种条件下的动作和反应用形式化的微程序讲解得十分清楚,尤其适合系统程序员阅读。

Chapter 2 Basic Programming Model

<br />Chapter 2 Basic Programming Model<br />────────────────────────────────────────────────────────────────────────────<br />This chapter describes the 80386 application programming environment as<br />seen by assembly language programmers when the proce

woshizhk的专栏 386

保护模式下的80386及其编程

一本老书,介绍了在保护模式下intel的x86架构编程的一些知识,还是有实用价值的

微信图片.dat文件解密实战:用Python一键转PNG(附完整代码)

本文详细介绍了如何通过Python解密微信图片.dat文件并转换为PNG格式的完整教程。文章深入解析了微信.dat文件的异或加密原理,提供了自动检测密钥的Python脚本,并分享了批量解密和性能优化的实用技巧,帮助用户轻松恢复和整理微信聊天图片。

weixin_29096377的博客 463

80386保护模式总结

大学也上过微机原理,但那个时候整天玩PHP,VC++,C# .net...数据库管理系统...没有意识到她是一门非常重要的课。于是上这些基础课的时候都在下面看那些xxx从入门到精通之类的书了或者干脆翘了去图书馆看(当然我不会否认正是因为这些书让我玩计算机的兴趣坚持了下去)。大学毕业同学都把书卖了。我当时感到像微机原理组成原理之类的书可能以后有用,于是没有卖(因为我知道自己的兴趣所在)。 毕业后

※旅程※ 5848

Windows: 深入剖析pip install SSLError与SSL模块缺失的根源及系统级修复

本文深入分析Windows系统下pip install SSLError与SSL模块缺失的根本原因,提供系统级修复方案。从Python安装包缺失SSL支持、OpenSSL库冲突到环境变量配置问题,详细讲解四大成因及对应的解决方案,包括重新安装Python、手动修复OpenSSL依赖等实用技巧,帮助开发者彻底解决HTTPS连接问题。

weixin_28595749的博客 459

Intel 80386的保护模式

<br />1. 实地址模式<br /> <br />当CPU通电或RESET时,cr0的PE位置0, 进入实地址模式。这里不在赘述。<br /> <br />2. 保护模式<br /> <br />80386提供分段和分页两种存储管理模式<br /> <br />●分段管理的特点:对存储空间的逻辑划分,优点:对模块化(结构化)程序设计方式提供了很好的支持;缺点:①段长可变不固定, 管理更复杂、②空间碎片较多、③访问字节数∕传输字节可能很小<br /> <br />●分页管理的特点:对存储空间的物理划分,优

云(存储),松(耦合) 1919

STM32 FDCAN热插拔恢复机制与自动重发功能优化

本文深入分析了STM32 FDCAN在热插拔场景下触发bus-off状态导致通讯中断的根本原因,指出自动重发功能是问题关键。通过禁用自动重发、配置硬件自动恢复机制及优化总线参数,实现了FDCAN热插拔后的100%稳定恢复,为工业应用提供了可靠的CAN总线解决方案。

ice55的博客 685

CT探测器普遍采用“星形拓扑+多ADC模组”架构的TDC(时间数字转换器)设计方案

本文提出一种基于TDC反馈机制的CT探测器时钟同步方法,通过延时测量、偏差计算和动态补偿三步硬件流水线,实现高精度同步。系统采用Xilinx Kintex UltraScale FPGA内置CARRY8进位链构建3.5ps分辨率的TDC,结合多级比较器和延迟单元,形成闭环反馈控制。实验表明,在512通道、1.28m传输距离下,同步精度稳定在10ps以内,较传统方案提升两个数量级,并能动态补偿干扰抖动。该方案解决了传统方法在CT旋转腔体环境下精度不足的问题,为下一代超高清CT提供了有效的时钟同步解决方案。

whm128的博客 274

80386保护模式段式寻址

前言:X86段式寻址写的人多了,我综合了网上多个版本和多本正版盗版书籍,加上自己的一点点领悟,终于貌似(之所以加个貌似,是因为可能以后还有修改)搞清楚了,特此记录。 本文特点:理论结合实践,有图有代码从而有真相。 说到X86平台,不得不说80386,因为很多操作系统原型都是基于这个平台写的,所以学习操作系统应该把这个平台搞清楚。关于硬件结构特点的介绍此处省略很多字。对于本篇文章,有两点很重要,

Leav 1519

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3189

80386保护模式的运行

linux 0.0.0 ------80386保护模式的运行                        版权归原作者所有 ----ljhhh0123 2009-10-3    在www.oldlinux.org 网上赵炯博士做出的假想的linux 0.00操作系统,功能就是两个不同的任务交替输出A和B两个字母.我用最简单的工具-----nasm汇编器 翻译之.能够在虚拟机qemu manage

Li Junhui的专栏 992

TMS320F28335调试跟踪的问题:DSP从上电复位,一直到执行main()的第一条语句之间,都干了些什么,以及CCS调试时程序查找的问题

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1210

基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备

在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2835

80386保护模式

实地址模式 当CPU通电或RESET时,cr0的PE位置0, 进入实地址模式。这里不在赘述。 保护模式 80386提供分段和分页两种存储管理模式 ● 分段管理的特点:对存储空间的逻辑划分,优点:对模块化(结构化)程序设计方式提供了很好的支持; 缺点:① 段长可变不固定, 管理更复杂、② 空间碎片较多、③ 访问字节数 ∕传输字节 可能很小 ● 分页管理的特点:对存储空间的物理划分,优点:① 页面长度固定,管理机构简单、② 访问字节数/传输字节通常更大; 缺点:① 一个页面内的程序或数据可能不具有完整意..

下次再说的博客 448

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1487

80286 与 80386,实模式与保护模式切换编程

学习自 狄泰软件 1 EAX与AX不是独立的,EAX是32位的寄存器,而AX是EAX的低16位。 2 or 对两个操作数进行逻辑(按位)或操作 80286 虽然有了保护模式,但其依然是 16 位的 CPU ,其通用寄存器还是 16 位宽,但其与 8086 不同的是其地址线由 20 位变为了 24 位,即寻址空间变成了 24 次方,等于 16MB 大小。虽然80286可以将地址线变成了24位,可以访问16MB的内存,但是其用来寻址的通用寄存器还是16位的,也没有突破一个寄存器只能访问64kb空间的限制,如

奶牛养殖场小马 1321

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 80386实模式编程模型
下一篇: 补码的由来
codesnail
博客等级 码龄18年 113粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值