3-533
INSTRUCTION SET REFERENCE
POP—Pop a Value from the Stack (Continued)
FI;
IF segment selector index is outside descriptor table limits
OR segment selectorÂ’s RPL
?
CPL
OR segment is not a writable data segment
OR DPL
?
CPL
THEN #GP(selector);
FI;
IF segment not marked present
THEN #SS(selector);
ELSE
SS
<
segment selector;
SS
<
segment descriptor;
FI;
FI;
IF DS, ES, FS or GS is loaded with non-null selector;
THEN
IF segment selector index is outside descriptor table limits
OR segment is not a data or readable code segment
OR ((segment is a data or nonconforming code segment)
AND (both RPL and CPL
>
DPL))
THEN #GP(selector);
IF segment not marked present
THEN #NP(selector);
ELSE
SegmentRegister
<
segment selector;
SegmentRegister
<
segment descriptor;
FI;
FI;
IF DS, ES, FS or GS is loaded with a null selector;
THEN
SegmentRegister
<
segment selector;
SegmentRegister
<
segment descriptor;
FI;
Flags Affected
None.