A SERVICE OF

logo

Vol. 2A 3-513
INSTRUCTION SET REFERENCE, A-M
JMP—Jump
THEN GP(new code segment selector); FI;
IF DPL > CPL
THEN #GP(segment selector); FI;
IF segment not present
THEN #NP(segment selector); FI;
tempEIP DEST(Offset);
IF OperandSize
= 16
THEN tempEIP tempEIP AND 0000FFFFH;
FI;
IF (IA32_EFER.LMA
= 0 or target mode = Compatibility mode) and
tempEIP outside code segment limit
THEN #GP(0); FI
IF tempEIP is non-canonical
THEN #GP(0); FI;
CS DEST[segment selector]; (* Segment descriptor information also loaded *)
CS(RPL) CPL
EIP tempEIP;
END;
NONCONFORMING-CODE-SEGMENT:
IF L-Bit
= 1 and D-BIT = 1 and IA32_EFER.LMA = 1
THEN GP(new code segment selector); FI;
IF (RPL > CPL) OR (DPL
CPL)
THEN #GP(code segment selector); FI;
IF segment not present
THEN #NP(segment selector); FI;
tempEIP DEST(Offset);
IF OperandSize
= 16
THEN tempEIP tempEIP AND 0000FFFFH; FI;
IF (IA32_EFER.LMA
= 0 OR target mode = Compatibility mode)
and tempEIP outside code segment limit
THEN #GP(0); FI
IF tempEIP is non-canonical THEN #GP(0); FI;
CS DEST[segment selector]; (* Segment descriptor information also loaded *)
CS(RPL) CPL;
EIP tempEIP;
END;
CALL-GATE:
IF call gate DPL < CPL
or call gate DPL < call gate segment-selector RPL
THEN #GP(call gate selector); FI;
IF call gate not present
THEN #NP(call gate selector); FI;
IF call gate code-segment selector is NULL