80x86的寄存器

 80286 除了具有8086 中全部寄存器外,为了支持多用户、多任务处理的需要,比8086 多了一个16位的机器状态字寄存器MSW、一个16 位任务寄存器TR、3个段描述符表寄存器(LDTR、GDTR和IDTR)和程序不可见的段描述符高速缓冲寄存器。
 在80386、80486和Pentium中,除了包括80286所有寄存器外,还将通用寄存器都扩展为32 位,成为EAX、EDX、ECX、EBX、ESI、EDI、EBP和ESP。它们的低16位分别为8086和80286 的通用寄存器AX、DX、CX、BX、SI、DI、BP和SP,可以单独使用,而且AX、DX、CX、BX都可以分别为两个8位的寄存器使用。指令指针和标志寄存器也都扩展为32位的EIP和EFLAG,但它们的低16位仍可单独使用。段寄存器仍是16位的,但是增加了两个数据段寄存器ES和GS。
  在386 和486中,已经把286的机器状态字MSW,扩展为3个32 位的控制寄存器CR0、CR2和CR3。在Pentium中还有一个CR4。此外,在386、486和Pentium中,还有6个排错寄存器DR0、DR1、DR2、DR3、DR4、DR6和DR7。386中有两个测试寄存器TR6、TR7,在486和Pentium中有5个测试寄存器 TR3、TR4、TR5、TR6、TR7。

1. 标志寄存器
  标志寄存器EFLAGS是一个32位的寄存器,它是8086 FLAGS的扩充。低位的9个标志位是8086/8088中原有的。

  286中的标志寄存器仍是16位,它保留了8086的所有9个标志位,增加了以下两个仅用与保护模式的系统标志:
  (1)I/O特权标志IOPL(两位)
  它规定了能使用I/O敏感指令的特权级。在保护模式下,利用这两位的编码可以分别表示0、1、2、3这4种特权级,0级特权最高,3级特权最低。在80286以上的处理器中,有一部分指令如CLI(关中断指令)、STI(开中断指令)、IN(输入串)、OUT(输出),IOPL的值规定了能执行这些指令的特权级。只有特权高于IOPL的程序才能执行I/O敏感指令;特权低于IOPL的程序,若企图执行敏感指令,会引起异常中断。
  (2)嵌套任务标志NT
  在80286以上的处理器上允许执行多任务,故任务可以切换也可以嵌套。当NT被置1时,表示当前执行的任务正嵌套在另一个任务中,否则,NT被清零。该位的置1与清零都是通过向其他任务的控制转移来实现的。

  386中,保留286所有标志位外增加两个标志位,且标志寄存器扩展为32位。扩展的两个系统标志为虚拟8086方式标志VM和恢复标志RF。
  (3)虚拟8086方式标志VM
  如果VM位置1,表示80386工作在保护虚地址方式,即80386专为虚拟8086方式。
  VM位只能在保护方式下由IRET指令(若当前的特权级=0)或在任何特权级下由任务切换设置。PUSHF指令使此位清零,但VM位不受POPF指令的影响。
  (4)恢复标志RF
  RF标志配合调试寄存器的断点或单步操作一起使用,在处理断点之前,在两条指令之间检查到RF位置1时,则下一条指令执行时的调试故障被忽略。
  (5)地址对齐检查标志AC
  当置AC位为1时,若发现地址不对齐就会产生异常。地址不对齐是指:若访问一个字时,地址为奇地址;若访问双字时,地址不处在双字边界上。但不对齐故障只是在特权级3的程序运行时才产生。在特权级0、1、2运行的程序,忽略AC标志的位置。

  Pentium独有以下3位标志,以控制Pentium虚拟8086方式扩充部分分虚拟中断。
  (6)VIF为虚拟中断标志。
  (7)VIP为虚拟中断挂起标志。
  (8)ID为鉴别标志,该标志用以指示Pentium处理器是否支持CPUID指令。

2.控制寄存器
  286比8086多了一个控制寄存器―16位的机器状态字寄存器MSW。
 MSW 各位的功能如下:
  PE(实地址方式与保护方式转换位):当PE=1时,表示80286已进入保护方式,除复位外,不能被清除;当PE=0时,80286当前在实地址方式下操作。
  MP(监控处理器位):当MP=1时,表示协处理器在工作;否则协处理器未工作。
  EM(协处理器仿真状态位):当MP=0,而EM=1时,表示体统要用软件仿真协处理器的功能。
  TS(任务转换位):每当进行两个任务之间转换时就把TS置1;一旦任务转换完成,则TS=0。在TS置1时,不允许协处理器工作。

 486/386有3个32位的控制寄存器(CR1为Intel保留),用来存放全局特性的机器状态。Pentium与486 相比,多了一个CR4。

  CR0含有控制或指示整个系统(不是单个任务)的条件标志。为了保持与80286保护模式的兼容,该寄存器的低16位包括了80286 机器状态字(MSW),新增了ET和PG位。
  处理器扩展类型位ET:ET位反映了所扩展的协处理器的类型,ET=0为80287,ET=1为80387。所扩展的协处理器的类型,也可以在80386 复位后,从ERROR#引脚的电平来确定。在复位此信号有效(低电平),则表示存在80387;否则,表示存在80287。
  页式管理机构使能位PG:PG位为1时,页式管理机构工作;否则不工作,直接把线性地址作为物理地址。

 以下仅对486以上的处理器有效:
 数字错误NE:该位为1时,报告数字异常的标准机构使能,即数字异常成为异常16;该位清0并且IGNNE# 输入引脚的信号为有效时,忽略数字异常;而该位为0且IGNNE# 输入信号为无效时,将引起处理器停止工作,等待中断发生。中断由FERR# 引脚上的有效信号驱动中断控制器输入端产生(FERR#模拟8087和80387 的ERROR# )。NE位、IGNNE#引脚和FERR#引脚连同外逻辑一起被用来实现8086式的数字异常报告功能。
  写保护位WP:该位为1时表示用户级页面对核心级的访问进行写保护;该位为0时允许核心代码对用户级只读页面进行改写。这个特性对某些操作系统,例如UNIX为创建一个新进程而进行写拷贝是非常有用的。
  对齐标志位AM:该位为1时允许对齐检查;为0 则不允许。处理器进行对齐检查必须具备3个条件:AM位为1,AC标志位为1,并且当前特权级CPL为3级(用户模式)。
  不透写位NW:该位清0 时使能“透写”,这是Cache工作的必要条件;该位为1(此时CD必须置为1,Cache不使能)则不使能。不透写意味着允许旧的数据保留在Cache中。
  Cache不使能位CD:该位清0,486以上处理器内部的Cache使能;该位为1时若访问Cache“脱靶”,则不填充Cache,但是如果访问Cache“命中”Cache仍可正常工作。要完全使Cache停止工作,必须刷新Cache。

  CR1为将来的Intel处理器保留。

  CR2存放引起缺页的线性地址,当页管理部件把线性地址转换为物理地址时,该线性地址所在的页不在内存里,就产生一个异常14:缺页异常。当CR0中的PG位被置1时,CR2才有效。

  CR3为处理器提供当前任务的页目录基地址。当CR0中的PG位被置1时才能使用CR3。CR3中的PCD和PWT位仅对486以上的处理器有效。
 页级Cache禁止位PCD:该位为1,对页目录不进行高速缓存;为0,进行高速缓存。该位驱动PCD引脚,控制外部Cache是工作还是不工作。
  页透写位PWT:486以上处理器的内部Cache总是透写的,但对外Cache而言,允许某些页是回写,而另外一些页是透写的。当PTW为1,外部Cache对页目录进行透写;否则,进行回写。本位驱动PCD引脚以控制外部Cache透写或者回写。

  CR4仅为Pentium处理器所有:
  VME为虚拟中断允许位。
  PVI为保护模式下的中断允许位。
  TSD为时间标记计数器允许位。
  DE为I/O断点允许位。
  PSE是以4MB为一页的允许位。
  MCE为机器校验异常允许位。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值