beautypg.com

Intel 253666-024US User Manual

Page 523

background image

Vol. 2A 3-477

INSTRUCTION SET REFERENCE, A-M

INT n/INTO/INT 3—Call to Interrupt Procedure

or stack segment does not indicate writable data segment

THEN #TS(SS selector + EXT); FI;

IF stack segment not present

THEN #SS(SS selector + EXT); FI;

FI
IF 32-bit gate

THEN

IF new stack does not have room for 24 bytes (error code pushed)
or 20 bytes (no error code pushed)

THEN #SS(segment selector + EXT); FI;

FI

ELSE

IF 16-bit gate

THEN

IF new stack does not have room for 12 bytes (error code pushed)
or 10 bytes (no error code pushed);
THEN #SS(segment selector + EXT); FI;

ELSE (* 64-bit gate*)

IF StackAddress is non-canonical

THEN #SS(0);FI;

FI;

FI;
IF (IA32_EFER.LMA = 0) (* Not IA-32e mode *)

THEN

IF instruction pointer is not within code segment limits

THEN #GP(0); FI;

SS:ESP ← TSS(NewSS:NewESP);

(* Segment descriptor information also loaded *)

ELSE

IF instruction pointer points to non-canonical address

THEN #GP(0); FI:

FI;
IF 32-bit gate

THEN

CS:EIP ← Gate(CS:EIP); (* Segment descriptor information also loaded *)

ELSE

IF 16-bit gate

THEN

CS:IP ← Gate(CS:IP);

(* Segment descriptor information also loaded *)

ELSE (* 64-bit gate *)

CS:RIP ← Gate(CS:RIP);

(* Segment descriptor information also loaded *)

FI;