CLI
Bandera Interrupt clara
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
FA | CLI | ZO | Valido | Valido | Bandera de interrupción clara; interrumpe desactivado al interrumpir la bandera. |
Coste medido
Cargando las mediciones de arch-data...
Banderas nombradas
IFInterrupciones
Descripción
En la mayoría de los casos, CLI despeja la bandera IF en el registro EFLAGS y ninguna otra bandera se ve afectada. Limpiar la bandera IF hace que el procesador ignore interrupciones externas enmascarables. La bandera IF y la instrucción CLI y STI no tienen ningún efecto en la generación de excepciones y NMI interrumpe.
La operación es diferente en dos modos definidos como sigue:
- Modo PVI (interrupciones virtuales de movimiento protegido): CR0.PE = 1, EFLAGS.VM = 0, CPL = 3, y CR4.PVI = 1; * Modo VME (extensiones modo virtual-8086): CR0.PE = 1, EFLAGS.VM = 1, y CR4.VME = 1.
Si IOPL < 3 y el modo VME o el modo PVI está activo, CLI despeja la bandera VIF en el registro EFLAGS, dejando IF sin afectar.
En el cuadro 3-7 se indica la acción de la instrucción CLI dependiendo del modo de funcionamiento del procesador, IOPL y CPL.
Mode Table 3-7. Decision Table for CLI Results CLI Result
Real-address IOPL IF = 0
Protected, not PVI2 X1 IF = 0CPL
Protected, PVI3 < CPL #GP fault
3 IF = 0
Virtual-8086, not VME3 02 VIF = 0
3 IF = 0
Virtual-8086, VME3 02
3 #GP fault
02 IF = 0VIF = 0
NOTES: 1. X = Este ajuste no tiene efecto en la operación de instrucción. 2. Para esta tabla, "modo protegido" se aplica siempre que CR0.PE = 1 y EFLAGS.VM = 0; incluye el modo de compatibilidad y el modo 64-bit. 3. Modo PVI y modo virtual-8086 cada uno implica CPL = 3.
Operación
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;Banderas afectadas
O la bandera IF o la bandera VIF se pone a cero a 0. Otras banderas no son afectadas.
Excepciones
Modo protegido
#GP(0) | Si CPL es mayor que IOPL y PVI no es activo. Si CPL es mayor que IOPL y menos de 3. |
#UD | Si se utiliza el prefijo LOCK. |
Modo real
#UD | Si se utiliza el prefijo LOCK. |
Modo virtual-8086
#GP(0) | Si IOPL es menos de 3 y el modo VME no es activo. |
#UD | Si se utiliza el prefijo LOCK. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
| Las mismas excepciones que en modo protegido. |