CLI - 清除中斷標誌

操作碼

指令

說明

FA

CLI

清除中斷標誌;清除中斷標誌時禁用中斷

說明

清除 EFLAGS 暫存器中的 IF 標誌。其它標誌不受影響。清除 IF 標誌時會導致處理器忽略可遮蔽的外部中斷。IF 標誌與 CLI 及 STI 指令不影響異常與 NMI 中斷的產生。

以下決策表指出根據處理器的操作模式以及目前執行的程式或過程的 CPL 與 IOPL(表格底部),CLI 指令執行的操作(表格頂部)。

PE =

0

1

1

1

1

VM =

X

0

X

0

1

CPL

X

IOPL

X

> IOPL

X

IOPL

X

X

= 3

X

< 3

IF 0

Y

Y

Y

N

N

#GP(0)

N

N

N

Y

Y

備註:X 表示無意義;N 表示不執行第 1 列的操作;Y 表示執行第 1 列的操作

操作

IF PE 0 (* Executing in real-address mode *)
THEN
IF 0;
ELSE
IF VM 0 (* Executing in protected mode *)
THEN
IF CPL IOPL
THEN
IF 0;
ELSE
#GP(0);
FI;
FI;
ELSE (* Executing in Virtual-8086 mode *)
IF IOPL 3
THEN
IF 0
ELSE
#GP(0);
FI;
FI;
FI;

影響的標誌

如果 CPL 等於或小於 IOPL,則 IF 清除為 0;否則它不受影響。EFLAGS 暫存器中的其它標誌不受影響。

保護模式異常

#GP(0) - 如果 CPL 大於(特權更小)目前程式或過程的 IOPL。

實地址模式異常

無。

虛 8086 模式異常

#GP(0) - 如果 CPL 大於(特權更小)目前程式或過程的 IOPL。