段权限检查(Segement Privilege Check)
CPU权限等级
CPU权限图解

数字越大权限越低 数字越小权限越高
R0 = 内核
R1 R2 系统服务
R3 应用层
CPL(Current Privilege Level)
CPL: CPU当前的权限级别
CS/SS低2位为当前CPL
应用层:

CS: 0x001B 0000 0000 0001 1011 CPL = 3
SS: 0x0023 0000 0000 0010 0011 CPL = 3
DPL(Descriptor Privilege Level)
DPL存储在段描述符中,规定了访问该段所需要的特权级别
段描述符高4字节13-14位
在应用层中:
CS: 0x001B 0000 0000 0001 1011 CPL = 3

00CFF(1111)B00`0000ffff
RPL(Request Privilege Level)
RPL是针对段选择子而言的,每个段的选择子都有自己的RPL,用什么权限去访问对应相同的段描述符 但是请求级别不同
mov ax,0x0008 1000 RPL = 0
mov ss,ax
mov ax,0x000B 1011 RPL = 3
mov ss,ax数据段的权限检查:CPL <= DPL (数值上的比较) 并且 RPL <= DPL (数值上的比较)
00CFFB00`0000FFFF
0X4B 0100 1011
RPL:3
TI:0
INDEX:9
