80x86 保护运行模式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
80x86 保护运行模式

80x86 保护运行模式 80386 概述 80386 是一个高级的32 位微处理器,专门用于多任务的操作系统,并为需要高性能的应用所设计。32 位的寄存器和数据通道支持32 位的寻址方式和数据类型,处理器可以寻址最高可达4GB 的物理内存以及 64TB(246字节)的虚拟内存。芯片上的内存管理包括地址转换寄存器、高级多任务硬件、保护机制以及分 页虚拟内存机制。下面针对系统编程,概要说明使用80386 的这些基本原理。 系统寄存器 设计用于系统编程的系统寄存器主要包括以下几类: 标志寄存器EFALGS; 内存管理寄存器; 控制寄存器; 调试寄存器; 测试寄存器。 系统标志寄存器EFLAGS 控制着I/O、可屏蔽中断、调试、任务切换以及保护模式和多任务环境下虚拟 8086 程序的执行。其中主要标志见下图所示。 31 23 15 7 0 0 0 0 0 0 0 0 0 0 0 0 0 O 0 V M R F 0 N T IO PL O F D F I F T F S F Z F 0 A F 0 P F 1 C F 其中系统标志:VM – 虚拟8086 模式;RF – 恢复标志;NT – 嵌套任务标志;IO PL – I/O 特权级标 志;IF – 中断允许标志。 内存管理寄存器有4 个,用于分段内存管理: ??GDTR – 全局描述符表寄存器(Global Descriptor Table Register); ??LDTR – 局部描述符表寄存器(Local Descriptor Table Register); ??IDTR – 中断描述符表寄存器(Interrupt Descriptor Table Register); ??TR – 任务寄存器。 其中前两个寄存器(GDTR,LDTR)分别指向段描述符表GDT 和LDT。IDTR 寄存器指向中断向量表。TR 寄 存器指向处理器所需的当前任务的信息。 80386 共有4 个控制寄存器,分别是CR0、CR1、CR2 和CR3。格式见下图所示。 31 23 15 7 0 页目录基地址寄存器 Page Directory Base Register (PDBR) 保留 Reserved CR3 附录 465 页异常线性地址 Page Fault Linear Address CR2 保留 Reserved CR1 P G 保留 Reserved E T T S E M M P P E CR0 控制寄存器CR0 含有系统整体的控制标志。其中: ??PE – 保护模式开启位(Protection Enable,比特位0)。如果设置了该比特位,就会使处理器开 始在保护模式下运行。 ??MP – 协处理器存在标志(Math Present,比特位1)。用于控制WAIT 指令的功能,以配合协处理 的运行。 ??EM – 仿真控制(Emulation,比特位2)。指示是否需要仿真协处理器的功能。 ??TS – 任务切换(Task Switch,比特位3)。每当任务切换时处理器就会设置该比特位,并且在解 释协处理器指令之前测试该位。 ??ET – 扩展类型(Extention Type,比特位4)。该位指出了系统中所含有的协处理器类型(是80287 还是80387)。 ??PG – 分页操作(Paging,比特位31)。该位指示出是否使用页表将线性地址变换成物理地址。 内存管理 内存管理主要涉及处理器的内存寻址机制。80x86 使用两步将一个分段形式的逻辑地址转换为实际物 理内存地址。 ??段变换,将一个由段选择符和段内偏移构成的逻辑地址转换为一个线性地址; ??页变换,将线性地址转换为对应的物理地址。该步是可选的。 在分页机制开启时,通过将前面所述的段转换和页转换组合在一起,即实现了从逻辑地址到物理地址 的两个转换阶段。 段变换 下图示出了处理器是如何将一个逻辑地址转换为线性地址的。在转换过程中CPU 使用了以下一些数据 结构: ??段描述符(Segment Descriptors); ??描述符表(Descriptor tables); ??选择符(Selectors); ??段寄存器(Segment Registers)。 31 12 11 22 21 31 基地址 选择符 偏移值 + 页目录 段描述符 描述符表 页表项 页内偏移值 线性地址: 逻辑地址: 0 0 0 15 附录 466 图 段变换示意图 段描述符 段描述符向CPU 提供了将逻辑地址映射为线性地址所必要的信息。描述符是由程序编译器、链接器、 加载器或操作系统创建的。下图示出了描述符的两种一般格式。所有种类的描述符都具有这两种格式之一。 段描述符的各个字段的含义如下: 31 23 15 7 0 基地址(BASE) 位31..

文档评论(0)

saa9099 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档