<<<    Index    >>>
3-377
INSTRUCTION SET REFERENCE
LSL—Load Segment Limit (Continued)
Operation
IF SRC(Offset) > descriptor table limit
THEN ZF 
<
 0; FI;
Read segment descriptor;
IF SegmentDescriptor(Type) 
conforming code segment
AND (CPL > DPL) OR (RPL > DPL)
OR Segment type is not valid for instruction
THEN
ZF 
<
 0
ELSE
temp 
SegmentLimit([SRC]);
IF (G = 1)
THEN
temp 
ShiftLeft(12, temp) OR 00000FFFH;
FI;
IF OperandSize = 32
THEN
DEST 
<
 temp;
ELSE (*OperandSize = 16*)
DEST 
<
 temp AND FFFFH;
FI;
FI;
Flags Affected
The ZF flag is set to 1 if the segment limit is loaded successfully; otherwise, it is cleared to 0.
Protected Mode Exceptions
#GP(0)
If a memory operand effective address is outside the CS, DS, ES, FS, or
GS segment limit.
If the DS, ES, FS, or GS register is used to access memory and it contains
a null segment selector.
#SS(0)
If a memory operand effective address is outside the SS segment limit.
#PF(fault-code)If a page fault occurs.
#AC(0)
If alignment checking is enabled and an unaligned memory reference is
made while the current privilege level is 3.
<<<    Index    >>>