特权指令是指保护方式下只有当前特权级CPL=0时,才可执行的指令。如果CPL不等于0而执行它们,那么会引起通用保护异常。从上面介绍的操作系统类指令可归纳出如下表所示的80386特权指令。这些特权指令在构成完善的保护机制方面起了重要的作用。
指令 |
功能 |
CLTS |
清除CR0中的TS位 |
LTR |
装入TR寄存器 |
HLT |
停机 |
MOV CRn,reg |
装入控制寄存器 |
MOV reg,CRn |
保存控制寄存器 |
LGDT |
装入GDTR寄存器 |
LIDT |
装入IDTR寄存器 |
LLDT |
装入LDTR寄存器 |
MOV DRn,reg |
装入调试寄存器 |
MOV reg,DRn |
保存调试寄存器 |
LMSW |
装入MSW寄存器(CR0的低16位) |
从上表可见,装入GDTR、IDTR、LDTR、TR和MSW的指令都是特权指令,而存储上述寄存器的指令不是特权指令。这表示,保护模式下任何程序可获得这些寄存器的值,但只有特权级0的程序才能够改变这些寄存器的值。从上表还可以看出,设置和存储控制寄存器及调试寄存器的指令都是特权指令。