3-472 Vol. 2A INT n/INTO/INT 3—Call to Interrupt Procedure
INSTRUCTION SET REFERENCE, A-M
with the IRET instruction, which pops the EFLAGS information and return address
from the stack.
The interrupt vector number specifies an interrupt descriptor in the interrupt
descriptor table (IDT); that is, it provides index into the IDT. The selected interrupt
descriptor in turn contains a pointer to an interrupt or exception handler procedure.
In protected mode, the IDT contains an array of 8-byte descriptors, each of which
is an interrupt gate, trap gate, or task gate. In real-address mode, the IDT is an
array of 4-byte far pointers (2-byte code segment selector and a 2-byte instruction
pointer), each of which point directly to a procedure in the selected segment. (Note
that in real-address mode, the IDT is called the interrupt vector table, and its
pointers are called interrupt vectors.)
The following decision table indicates which action in the lower portion of the table is
taken given the conditions in the upper portion of the table. Each Y in the lower
section of the decision table represents a procedure defined in the “Operation”
section for this instruction (except #GP).
Table 3-56. Decision Table
PE 01 1 1 1 1 1 1
VM –– – – – 0 1 1
IOPL –– – – – – <3 =3
DPL/CPL
RELATIONSHIP
–DPL<
CPL
–DPL>
CPL
DPL=
CPL or C
DPL<
CPL & NC
––
INTERRUPT TYPE –S/W– – – – – –
GATE TYPE –– TaskTrap or
Interrupt
Trap or
Interrupt
Trap or
Interrupt
Trap or
Interrupt
Trap or
Interrupt
REAL-ADDRESS-
MODE
Y
PROTECTED-MODE YYY Y Y Y Y
TRAP-OR-
INTERRUPT-GATE
YYYYY
INTER-PRIVILEGE-
LEVEL-INTERRUPT
Y
INTRA-PRIVILEGE-
LEVEL-INTERRUPT
Y
INTERRUPT-FROM-
VIRTUAL-8086-MODE
Y
TASK-GATE Y
#GP YY Y
NOTES:
− Don't Care.
YYes, action taken.
Blank Action not taken.