特权指令是指保护方式下只有当前特权级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的程序才能够改变这些寄存器的值。从上表还可以看出,设置和存储控制寄存器及调试寄存器的指令都是特权指令。