Intel 253666-024US User Manual

Page 606

Advertising
background image

3-560 Vol. 2A

LSL—Load Segment Limit

INSTRUCTION SET REFERENCE, A-M

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;

ELSE IF OperandSize

=

32

THEN DEST ← temp; FI;

ELSE IF OperandSize

=

64 (* REX.W used *)

THEN DEST (* Zero-extended *) ← temp; FI;

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 set
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 the memory operand effec-

tive address is unaligned while the current privilege level is 3.

#UD

If the LOCK prefix is used.

Real-Address Mode Exceptions

#UD

The LAR instruction cannot be executed in real-address mode.

Virtual-8086 Mode Exceptions

#UD

The LAR instruction cannot be executed in virtual-8086 mode.

Advertising