THE
80286
INSTRUCTION SET
INT
IINTO-Call
to
Interrupt Procedure
Opcode Instruction
Clocks(1)
Description
CC
.INT 3
23(2)
Interrupt 3 (trap
to
debugger)
CC
INT 3 40 Interrupt
3,
protected mode, same privilege
CC
INT 3 78 Interrupt
3,
protected mode, more privilege
CC
INT3
167 Interrupt
3,
protected mode, via task gate
CD
db INT db
23(2)
Interrupt numbered by immediate byte
CD
db INT db 40 Interrupt, protected mode, same privilege
CD
db INT db 78
Interrupt, protected mode, more privilege
CD
db
INT db 167 Interrupt, protected mode, via task gate
CE
INTO
24,noj =
3(2)
Interrupt 4 if overflow flag is 1
(1) = Add one clock
for
each byte
of
the next instruction executed.
(2)
= (real mode)
FLAGS MODIFIED
All if a task switch takes place; Trap Flag reset if
no
task switch takes place. Interrupt Flag
is
always
reset
in
Real Mode, and reset in Protected Mode when
INT
references an interrupt gate.
FLAGS UNDE'FINED
None
OPERATION
The
INT
instruction generates via software a call
to
an
interrupt procedure. The immediate operand,
from
0
to
255, gives the index number into the Interrupt Descriptor Table of the interrupt routine
to
be called. In protected mode, the IDT consists of 8-byte descriptors; the descriptor
for
the interrupt
invoked must indicate an interrupt gate, a
trap gate,
or
a task gate. In real address mode, the IDT
is
an array of 4-byte long pointers at the fixed location
OOOOOH.
The
INTO
instruction
is
identical
to
the
INT
instruction except that the interrupt number
is
implicitly
4,
and the interrupt
is
made only if the overflow flag of the 80286
is
on.
The clock counts
for
the four
forms of
INT
db are valid
for
INTO, with the number of clocks increased
by
1 for the overflow flag
test.
The first
32
interrupts are reserved
by
Intel for systems use. Some of these interrupts are exception
handlers for internally-generated faults. Most of these exception handlers should not be invoked with
".
_ T'1Irr.T'T"
~
___
...
____
...
! ... _
LIlt;;
.ll"1.l
lU,:)U
",,","IVll,
Generally, interrupts behave like far CALLs except that the flags register
is
pushed onto the stack
before the return address. Interrupt procedures return via the IRET instruction, which pops the flags
from the stack.
In Real Address mode,
INT
pushes the flags, CS and the return IP onto the stack
in
that order, then
resets the Trap Flag, then jumps to the long pointer indexed
by
the interrupt number,
in
the interrupt
vector table.
8-48