1.6个段描述符 每个段对应一个段描述符(8个字节),6 个段描述符存放在CPU内的段描述符高速缓 存器中,它们均由内存的描述符表中拷贝而 成,以便CPU访问某一段时,均按存放在 cPU内该段的段描述符所描述的信息进行操 作。每个段描述符的具体组成如图3-4所示:
每个段对应一个段描述符(8个字节),6 个段描述符存放在CPU内的段描述符高速缓 存器中,它们均由内存的描述符表中拷贝而 成,以便CPU访问某一段时,均按存放在 CPU内该段的段描述符所描述的信息进行操 作。每个段描述符的具体组成如图3-4所示: 1. 6个段描述符
图3-4段描述符的组成 0段限值(7-0) 1|段限值(15~8) 2段基址(7~0) 76543210 3段基址(15-8)访问权 P DPL S TYPE 4段基址(23~16 P:P=1,表示该段在物理存储器上 5访问权(7-0) DPL:描述该段的特权级 6 GDOU S:S=1,表示代码或数据段描述符 19~16 S=0,表示系统描述符 7段基址(31-24) TYPE:数据、堆栈、代码段读/写类型 图3-4段描述符的组成
图3-4 段描述符的组成
2.6个16位段寄存器 每个段寄存器的组成如图35所示。在保 护模式下,段寄存器被称作为一个16位的段选 择字,其中b1、b0位为请求特权级RPL,可 以请求特权层的级别0-3级。 3210 INDEX m RPL 图3-5段选择字
每个段寄存器的组成如图3-5所示。在保 护模式下,段寄存器被称作为一个16位的段选 择字,其中b1、b0位为请求特权级RPL,可 以请求特权层的级别0-3级。 2.6个16位段寄存器
、指令指针和标志寄存器 Pentium cpu中有一个32位的指令指(EIP)和一 个32位的标志寄存器( EFLAGS),如图3-6所示 31 1615 IP EIP EFLAGS CIMF FLAGS 图3-6指令指针和标志寄存器
Pentium CPU中有一个32位的指令指(EIP)和一 个32位的标志寄存器(EFLAGS),如图3-6所示: 三、指令指针和标志寄存器
EIP保存下一条待执行指令所在代码段内的偏 移值,也就是偏离代码段首地址的字节地址 数值。EIP的低16位为IP,供实地址方式下采 用 EFLAGS在808616位 FLAGS基础上扩充了 高16位,其中, flags b11~b0中保留了 8086cPU中6个状态标志和3个控制标志 增加了№T与IoPL,高16位中新增了6个标志 位。这些扩充标志位的含义参考教材
◼ EIP保存下一条待执行指令所在代码段内的偏 移值,也就是偏离代码段首地址的字节地址 数值。EIP的低16位为IP,供实地址方式下采 用。 ◼ EFLAGS在8086 16位FLAGS基础上扩充了 高16位,其中,FLAGS b11~b0中保留了 8086 CPU中6个状态标志和3个控制标志, 增加了NT与IOPL,高16位中新增了6个标志 位。这些扩充标志位的含义参考教材