|
80386 CPU寄存器
高位31 16 15 0 低位
┌───────┬───┬───┐
EAX│ │AH AX AL│ ─┐
├───────┼───┼───┤ │
EBX│ │BH BX BL│ │
├───────┼───┼───┤ │通用数据寄存器
ECX│ │CH CX CL│ │
├───────┼───┼───┤ │
EDX│ │DH DX DL│ ─┘
├───────┼───┴───┤
ESI│ │ SI │
├───────┼───────┤
EDI│ │ DI │
├───────┼───────┤
EBP│ │ BP │
├───────┼───────┤
ESP│ │ SP │
└───────┴───────┘
┌───────┬───────┐
EIP│ │ IP │指令指针寄存器
└───────┴───────┘
┌───────┬───────┐
EFLAGS │ │ FLAGS │标志寄存器
└───────┴───────┘
┌───────┐
┌ 代码段│ CS │ ─┐
描 ├───────┤ │
│ 堆栈段│ SS │ │
述 ├───────┤ │
段 描述 │ ┌ │ DS │ │段选择寄存器
基←符寄←┤ 数 │ ├───────┤ │
址 存器 │ │ │ ES │ │
符 据 │ ├───────┤ │
│ │ │ FS │ │
表 段 │ ├───────┤ │
└ └ │ GS │ ─┘
└───────┘
47 16 15 0
┌──────────┬─────┐
┌─ │ 线性基地址(32位)│ 段界限 │GDTR ┐
│ ├──────────┼─────┤ │系统地址寄存器
│┌ │ │ │IDTR ┘
││ └──────────┴─────┘
│└→中断描述符表IDT(Interrupt Descriptor Table)
└─→全局描述符表GDT(Global Descriptor Table)
15 0
任务 ┌─────┐
描述 ┌ 状态段│ TR │任务状态段寄存器 ┐系统段
基址等 ← 符寄 ←┤ ├─────┤ │选择
存器 └ 局部描│ LDTR │局部描述符表寄存器┘寄存器
述符表└─────┘
EFLAGS(标志寄存器):
①IOPL(第12、13位)是 I/O特权标志,用于指定 I/O操作处于0-3 特权层中的哪一层。
②NT(位14)是嵌套标志,若NT=1,表示当前执行的任务嵌套于另一任务中,执行完该任务后,要返回到原来的任务中去。
③VM(位17)是虚拟8086方式。当80386 处于保护方式时,如果使VM置位,80386将 转为虚拟8086方式。VM位只能在保护方式下由IPET指令(若当前的特权级=0) 或在任何特权级下由任务切换设置。VM位不受POPF指令的影响,PUSHF 指令总是使该位清零。在中断处理过程中被压入或在任务切换期间被保存的EFLAGS的映象中的VM位将包含一个1, 条件是被中断的码正作为虚拟的8086任务而被执行。
④RF(位16)是恢复标志。……
80386 的每一个段选择寄存器(CS、SS、DS、ES、FS、GS,程序员可见)都有一个与之相连系的段描述符寄存器(程序员不可见)。每个段描述符寄存器都保存着一个32位的段基地址,一个32位的段界限(大小)和其他一些必要的属性。当一个段选择寄存器中的值确定以后,80386 中的硬件会自动根据段选择寄存器中的值即索引,从相应的表中取出一个 8字节描述符,装入相应的段描述符寄存器中。每当出现存储器访问时,就可由所用的段选择寄存器,直接用相应的段描述符寄存器中的段基地址。
由相关的描述符组成各个表:GDT(全局描述符表)、IDT(中断描述符表)、LDT(局部描述符表Local Descriptor Table)、TSS(任务状态段 Task State Segment)。 以上各表的基址和它们的界限由相应的寄存器(系统地址寄存器GDTR和LDTR、系统段选择寄存器LDTR和TR)保存。
控制寄存器用于保存全局性(不是特定的个别任务)的机器状态。
①机器控制寄存器CR0(低16位作为机器状态字MSW 与80286兼容)
31 4 3 2 1 0
┌─┬─────── ─────────┬─┬─┬─┬─┬─┐
│PG│ 保留 保留 │ET│TS│EM│MP│PE│
└─┴─────── ─────────┴─┴─┴─┴─┴─┘
其中PG是分页允许。ET是处理器扩展类型(80287或80387),如果ET置位,则适用与80387 兼容的32位规程;若ET复位,则采用与80287 兼容的16位规程。TS是任务切换,不论什么时候完成任务切换,TS位都自动置位。EM是模拟协处理器,EM置位,将使所有的协处理器操作码都产生协处理器无效陷阱(异常7);EM复位,将允许协处理器操作码在实际的80287或80387(默认)上执行。MP是监控协处理器,与TS一起使用来确定WAIT操作码是否产生协处理器无效陷阱(异常7) ,即当MP=1且TS=1时,WAIT产生陷阱;否则不产生陷阱。PE是保护允许,PE置位,CPU 进入保护方式;PE复位,CPU 处于实模式。PE可以由加载MSW 或加载CR0 指令置位,为了与80286 兼容,PE位不能由LMSW指令复位。
②页故障线性地址寄存器CR2
③页目录基址寄存器CR3
其中低12位保留
排错寄存器DR0-DR3 可指定4 个线性断点地址,DR6用于设置断点,DR7用于显示断点的当前状态。
测试寄存器TR6、TR7……
|