Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1519

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

INTn/INTO/INT3—Call to Interrupt Procedure
Opcode
CC
CD
ib
CE
Description
The INTn instruction generates a call to the interrupt or exception handler specified
with the destination operand. The destination operand specifies an interrupt vector
from 0 to 255, encoded as an 8-bit unsigned intermediate value. The first 32 interrupt
vectors are reserved by Intel for system use. Some of these interrupts are used for
internally generated exceptions.
The INTn instruction is the general mnemonic for executing a software-generated call
to an interrupt handler. The INTO instruction is a special mnemonic for calling overflow
exception (#OF), interrupt vector 4. The overflow interrupt checks the OF flag in the
EFLAGS register and calls the overflow interrupt handler if the OF flag is set to 1.
The INT3 instruction is a special mnemonic for calling the debug exception handler. The
action of the INT3 instruction (opcode CC) is slightly different from the operation of the
INT 3 instruction (opcode CC03), as follows:
• Interrupt redirection does not happen when in VME mode; the interrupt is handled
by a protected-mode handler.
• The virtual-8086 mode IOPL checks do not occur. The interrupt is taken without
faulting at any IOPL level.
The action of the INTn instruction (including the INTO and INT3 instructions) is similar
to that of a far call made with the CALL instruction. The primary difference is that with
the INTn instruction, the EFLAGS register is pushed onto the stack before the return
address. (The return address is a far address consisting of the current values of the CS
and EIP registers.) Returns from interrupt procedures are handled with the IRET
instruction, which pops the EFLAGS information and return address from the stack.
The interrupt vector 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 points to 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 procedure in the selected segment.
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).
Volume 4: Base IA-32 Instruction Reference
Instruction
Description
INT3
Interrupt 3—trap to debugger
INT imm8
Interrupt vector numbered by immediate byte
INTO
Interrupt 4—if overflow flag is 1
4:217

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents