系统指令
系统指令用于处理系统级功能,如加载系统寄存器、管理中断等。大多数系统指令只能由处于特权级0的操作系统软件执行,其余一些指令可以在任何特权级上执行,因此应用程序也能使用。下表中列出了我们将用到的一些系统指令。其中还指出了它们是否受到保护。
常用系统指令列表
指令 |
指令全名 |
受保护 |
说明 |
LLDT |
Load LDT Register |
是 |
加载局部描述符表寄存器LDTR。从内存加载LDT段选择符和段描述符到LDTR寄存器中 |
SLDT |
Store LDT Regiter |
否 |
保存局部描述符表寄存器LDTR。把LDTR中的LDT段选择符到内存中或通用寄存器中 |
LGDT |
Load GDT Register |
是 |
加载全局描述符表寄存器GDTR。把GDT表的基地址和长度从内存加载到GDTR中 |
SGDT |
Store GDT Register |
否 |
保存全局描述符表寄存器GDTR。把GDTR中IDT表的基地址和长度保存到内存中 |
LTR |
Load Task Register |
是 |
加载任务寄存器TR。把TSS段选择符(和段描述符)加载到任务寄存器中 |
STR |
Store Task Register |
否 |
保存任务寄存器TR。把TR中当前任务TSS段选择符保存到内存或通用寄存其中 |
LIDT |
Load IDT Register |
是 |
加载中断描述符表寄存器IDTR。把IDT表的基地址和长度从内存加载到IDTR中 |
SIDT |
Store IDT Register |
否 |
保存中断描述符表寄存器IDTR。把IDTR中IDT表的基地址和长度保存到内存中 |
MOV CRn |
Move Control Registers |
是 |
加载和保存控制寄存器CR0、CR1、CR2或CR3 |
LMSW |
Load Machine State Word |
是 |
加载机器状态字(对应CR0寄存器位15~0)。该指令用于兼容80286 处理器 |
SMSW |
Store Machine State Word |
否 |
保存机器状态字。该指令用于兼容80286 处理器 |
CLTS |
Clear TS flag |
是 |
清除CR0中的任务已切换标志TS。用于处理设备(协处理器)不存在异常 |
LSL |
Load Segment Limit |
否 |
加载段限长 |
HLT |
Halt Processor |
否 |
停止处理器执行 |