Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description |
---|---|---|---|---|---|
FA | CLI | ZO | Valid | Valid | Clear interrupt flag; interrupts disabled when interrupt flag cleared. |
Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
---|---|---|---|---|
ZO | N/A | N/A | N/A | N/A |
In most cases, CLI clears the IF flag in the EFLAGS register and no other flags are affected. Clearing the IF flag causes the processor to ignore maskable external interrupts. The IF flag and the CLI and STI instruction have no effect on the generation of exceptions and NMI interrupts.
Operation is different in two modes defined as follows:
If IOPL < 3 and either VME mode or PVI mode is active, CLI clears the VIF flag in the EFLAGS register, leaving IF unaffected.
Table 3-7 indicates the action of the CLI instruction depending on the processor operating mode, IOPL, and CPL.
Mode
IOPL
CLI Result
Real-address | X1 | IF = 0 |
Protected, not PVI2 | ≥ CPL | IF = 0 |
< CPL | #GP fault | |
Protected, PVI3 | 3 | IF = 0 |
0–2 | VIF = 0 | |
Virtual-8086, not VME3 | 3 | IF = 0 |
0–2 | #GP fault | |
Virtual-8086, VME3 | 3 | IF = 0 |
0–2 | VIF = 0 |
NOTES:
1. X = This setting has no effect on instruction operation.
2. For this table, “protected mode” applies whenever CR0.PE = 1 and EFLAGS.VM = 0; it includes compatibility mode and 64-bit mode.
3. PVI mode and virtual-8086 mode each imply CPL = 3.
IF CR0.PE = 0 THEN IF := 0; (* Reset Interrupt Flag *) ELSE IF IOPL ≥ CPL (* CPL = 3 if EFLAGS.VM = 1 *) THEN IF := 0; (* Reset Interrupt Flag *) ELSE IF VME mode OR PVI mode THEN VIF := 0; (* Reset Virtual Interrupt Flag *) ELSE #GP(0); FI; FI; FI;
Either the IF flag or the VIF flag is cleared to 0. Other flags are unaffected.
#GP(0) |
If CPL is greater than IOPL and PVI mode is not active. If CPL is greater than IOPL and less than 3. |
#UD | If the LOCK prefix is used. |
#UD | If the LOCK prefix is used. |
#GP(0) | If IOPL is less than 3 and VME mode is not active. |
#UD | If the LOCK prefix is used. |
Same exceptions as in protected mode.
Same exceptions as in protected mode.