xtt*_*xtt 6 x86 x86-64 cpu-architecture cpu-registers i386
我在《 INTEL 80386程序员参考手册》(p112,S 6.3.1.3)中读到,
内部处理器寄存器记录当前特权级别(CPL)。
我对它指的是什么感到好奇。它甚至有名字吗?寄存器的大小是多少?它还有其他用途吗?
当前特权级别(CPL)始终可以在代码段(CS)寄存器的低2位中找到。这2位可以是值0b00(环0),0b01(环1),0b10(环2),0b11(环3)。
应该注意的是,旧文档中使用的“ 内部处理器寄存器记录当前特权级别(CPL)”的文档有点欺骗性,并且也导致了其他人的头痛。CS始终在低2位中包含CPL,但显然它不是内部寄存器。
微体系结构内部也可以具有CPL的副本,但是始终可以通过查看CS来以编程方式访问它。
与您的问题没有直接关系,但可能对您有所帮助。如果在不同的环之间转换,并且目标代码段选择器的描述符是符合条件的段,则可能是描述符特权级别(DPL)!= CPL。这是因为在符合条件的段中,您将继续以先前的特权级别运行。对于不合格的段,DPL == CPL。
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |