1. 访问数据段时的特权级检查
为了访问数据段,数据段的选择子必须被加载进段寄存器(ES,ES,FS,GS,SS)。在把一个段选择子加载进段寄存器之前,处理器会进行特权级检查(如下图所示)。
在数值上必须满足以下两点:
1. CPL<=数据段描述符的DPL
2. RPL<=数据段描述符的DPL
否则,会产生一个一般保护异常。
2. 修改SS时的特权级检查
处理器要求,在任何时候,栈段的特权级必须和CPL相同。因此,随着程序的执行,要对段寄存器SS的内容进行修改时,必须进行特权级检查。在数值上必须满足以下两点:
1. CPL=堆栈段描述符的DPL
2. RPL=堆栈段描述符的DPL
否则也会产生一般保护异常。