[计算机软件及应用]第3章 Inter80x86微计算机处理器.ppt

[计算机软件及应用]第3章 Inter80x86微计算机处理器.ppt

  1. 1、本文档共269页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]第3章 Inter80x86微计算机处理器

图3.35 80386段寄存器和段描述符高速缓冲寄存器 3) 指令指针和标志寄存器 80386的指令指针寄存器EIP也是由8086/8088、80286相应的16位指令指针寄存器IP扩展成32位得到的。由于80386地址线是32位,故EIP中存放的是下一条要取出的指令在代码段内的偏移地址。80386在实方式时采用16位的指令指针IP。 80386的标志寄存器EFLAGS是32位的寄存器,其中低16位中有关标志位的定义与80286完全相同。80386中新定义了2个标志位RF(第16位)和VM(第17位)(见图3.19)。 VM(Virtual 8086 Mode):虚拟8086方式标志位。处于保护方式的80386转为虚拟8086方式时VM=1。 RF(Resume Flag):恢复标志位。该标志位配合调试寄存器的断点或单步操作一起使用,在处理断点之前,在两条指令之间检查到RF位置“1”时,则下一条指令执行时的调试故障被忽略。在成功地完成一条指令以后处理器把RF清“0”。而当接收到一个非调试故障的故障信号时,处理器把RF置“1”。 4) 控制寄存器(Control Register) 80386中有3个32位的控制寄存器CR0、CR2、CR3(CR1保留),它们的作用是保存全局性的机器状态。 (1) CR0——控制寄存器0。如图3.36所示,80386中CR0定义了6个控制和状态标志位。 图3.36 控制寄存器CR0 PG(页式管理使能位):置PG=1,表示允许80386内部分页部件工作;否则,分页部件不工作。 PE(实方式与保护方式转换位):PE=1时,表示CPU从实方式进入保护方式;PE=0时,表示CPU当前工作于实方式。 可由加载CR0指令来改变PE的值,通常由操作系统在初始化时执行一次。在80386及其后续CPU中,在进入保护方式以后,可改变PG和PE的值,使系统切换到实方式,但80286除复位外,PE位不能被清零。 MP、EM、TS和ET位用于控制80387协处理器的操作。ET位控制与协处理器通信时使用的协议,MP、EM和TS确定浮点指令和WAIT指令是否产生设备不可使用异常以及确定其他操作。 (2) CR2——控制寄存器1(页故障线性地址寄存器)。它保存一个32位的线性地址(如图3.37所示),该地址是由最后检测出的页故障所产生的。 (3) CR3——控制寄存器2(页目录基址寄存器)。如图3.37所示,它包含了页目录表示的物理基地址(目录基地址)。由分页硬件使用,其低12位总是0,因此,80386的页目录表总是按页对齐,即每页均为4 KB。 图3.37 控制寄存器CR2和 CR3 5) 系统地址寄存器(System Address Register) 80386 CPU中设置了4个系统地址寄存器,用来保存操作系统所需要的保护信息和地址转换表信息,如图3.38所示。 图3.38 80386系统地址寄存器 (1) 全局描述表寄存器GDTR(Global Descriptor Table Register):GDTR为48位寄存器,用来保存全局描述符表的32位线性地址和16位段界限。 (2) ?IDTR(Interrupt Descriptor Table Register):IDTR也是一个48位寄存器,用来保存中断描述表的32位线性地址和16位段界限。 (3) LDTR(Local Descriptor Table Register):LDTR为16位寄存器,用来保存当前的LDT(局部描述符表)的16位选择符。 (4) ?TR(Task State Register):TR为16位寄存器,用来保存当前任务的TSS(任务状态段)的16位选择符。 6) 调试寄存器(Debug Register) 如图3.39所示,80386 CPU中设置了8个调试寄存器DR0?DR7,它们为程序调试提供了硬件支持。8个寄存器中DR0?DR3为线性断点寄存器,可保存4个断点地址,程序设计人员可利用它们定义4个断点,从而可以方便地按照调试意图组合指令的执行和数据的读写。DR4和DR5保留。DR6用于保存断点状态。DR7用于控制断点设置。 7) 测试寄存器(Test Register) 80386中设置了两个32位的测试寄存器TR6和TR7,其

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档