3-102 Vol. 2A CALL—Call Procedure
INSTRUCTION SET REFERENCE, A-M
#GP(selector) If a code segment or gate or TSS selector index is outside
descriptor table limits.
If the segment descriptor pointed to by the segment selector in
the destination operand is not for a conforming-code segment,
nonconforming-code segment, call gate, task gate, or task state
segment.
If the DPL for a nonconforming-code segment is not equal to the
CPL or the RPL for the segment’s segment selector is greater
than the CPL.
If the DPL for a conforming-code segment is greater than the
CPL.
If the DPL from a call-gate, task-gate, or TSS segment
descriptor is less than the CPL or than the RPL of the call-gate,
task-gate, or TSS’s segment selector.
If the segment descriptor for a segment selector from a call gate
does not indicate it is a code segment.
If the segment selector from a call gate is beyond the descriptor
table limits.
If the DPL for a code-segment obtained from a call gate is
greater than the CPL.
If the segment selector for a TSS has its local/global bit set for
local.
If a TSS segment descriptor specifies that the TSS is busy or not
available.
#SS(0) If pushing the return address, parameters, or stack segment
pointer onto the stack exceeds the bounds of the stack segment,
when no stack switch occurs.
If a memory operand effective address is outside the SS
segment limit.
#SS(selector) If pushing the return address, parameters, or stack segment
pointer onto the stack exceeds the bounds of the stack segment,
when a stack switch occurs.
If the SS register is being loaded as part of a stack switch and
the segment pointed to is marked not present.
If stack segment does not have room for the return address,
parameters, or stack segment pointer, when stack switch
occurs.
#NP(selector) If a code segment, data segment, stack segment, call gate, task
gate, or TSS is not present.
#TS(selector) If the new stack segment selector and ESP are beyond the end
of the TSS.
If the new stack segment selector is NULL.