现对段选择符各字段的含义解释如下:■索引:位15~3。在全局描述符表GDT或局部描述符表LDT的8192个描述符中选择一个描述符。处理器将索引值乘8,再加上GDT或LDT的基址,结果用来选择一个段描述符。■TI:位2。表指示器,指定要用的描述符表,该位复位时,选择GDT;该位置位时,选择LDT。RPL:位1~0。请求特权级,指定选择符的特权级。特权级为0~3,为0时特权级最高
现对段选择符各字段的含义解释如下: ◼ 索引:位15~3。在全局描述符表GDT或局部描述符表 LDT的8192个描述符中选择一个描述符。处理器将索引值 乘8,再加上GDT或LDT的基址,结果用来选择一个段描 述符。 ◼ TI:位2。表指示器,指定要用的描述符表,该位复位时, 选择GDT;该位置位时,选择LDT。 ◼ RPL:位1~0。请求特权级,指定选择符的特权级。特 权级为0~3,为0时特权级最高
例9.1假定LDT的基址为00120000H,GDT的基址为00100000H。如果装入CS寄存器的选择符的值为1007H,那么请求特权级是多少?是GDT还是LDT的段描述符?段描述符的地址是什么?
例9.1 假定LDT的基址为00120000H,GDT的基址为00100000H。 如果装入CS寄存器的选择符的值为1007H,那么请求特权 级是多少?是GDT还是LDT的段描述符?段描述符的地址是 什么?
解将选择符用二进制表示,得到CS=0001000000000111B,由于最低两位为11,所以请求特权级RPL=3。右数第3位(表指示器TI位)为1,说明段描述符位于LDT中。将最左13位的值乘以8,即可得到描述符相对于表基址的偏移量:偏移量0FFSET=0001000000000BX8=1000H;段描述符地址为:00120000H+1000H=00121000H
解 将选择符用二进制表示,得到CS= 0001000000000111B,由于最低两位为11,所以请求特权 级RPL=3。 右数第3位(表指示器TI位)为1,说明段描述符位于LDT 中。 将最左13位的值乘以8,即可得到描述符相对于表基址 的偏移量: 偏移量OFFSET=0001000000000B×8=1000H; 段描述符地址为:00120000H+1000H=00121000H
9.3保护模式的寄存器模型80X86与Pentium的寄存器组如图9.2所示控制寄存器31CROAHAXEAXALBXEBXBHBLCR1通用CXECXCHCLCR2DLEDXDHDXCR3CR4寄BPEBP调试寄存器SIESI存DRODIEDIDR1SPESP器DR2标志”EFLAGFLAGSDR3IPEIP指令指针DR4CSDR5段寄存器SSDR6DSDR71.PentiumES测试寄存器FSTR6GS实模式下寄存器组TR715031图9.280X86与Pentium的寄存器组
9.3 保护模式的寄存器模型 ◼ 80X86 与Pentium的寄存器组如图9.2所示。 EAX AH AH AL AX EBX AH BH BL BX ECX AH CH CL CX EDX AH DH DL DX EBP AH BP ESI AH SI EDI AH DI ESP AH SP EFLAG AH S EIP AH IP FLAGS CS SS DS ES FS 段 寄 存 器 通 用 寄 存 器 GS 15 0 31 0 1. Pentium 实模式下寄存器组 标志 指令指针 CR0 CR1 CR2 CR3 DR0 DR1 DR2 DR3 DR4 DR5 DR6 DR7 TR6 控制寄存器 调试寄存器 测试寄存器 TR7 31 0 CR4 图9.2 80X86 与Pentium的寄存器组
2.Pentium保护模式下寄存器组在实方式下寄存器组的基础上增加了4个寄存器:全局描述符表寄存器GDTR(48位)GlobalDescriptorTableRegister471615-32位基地址16位界限值GTDR中断描述符表寄存器IDTR(48位)InterruptDescriptorTableRegister32位基地址16位界限值ITDR16位选择子LDTR局部描述符表寄存器LDTR(16位)LocalDescriptorTableRegisterTR16位选择子(16位)任务寄存器TRTaskRegister
2. Pentium 保护模式下寄存器组 在实方式下寄存器组的基础上增加了4个寄存器: 全局描述符表寄存器GDTR (48位) Global Descriptor Table Register 中断描述符表寄存器IDTR (48位) Interrupt Descriptor Table Register 局部描述符表寄存器LDTR (16位) Local Descriptor Table Register 任务寄存器TR (16位) Task Register 32位基地址 16位界限值 GTDR 47 16 15 0 32位基地址 16位界限值 ITDR 16位选择子 LDTR 16位选择子 TR