Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1557

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

LDS/LES/LFS/LGS/LSS—Load Far Pointer
Opcode
C5 / r
C5 / r
0F B2 / r
0F B2 / r
C4 / r
C4 / r
0F B4 / r
0F B4 / r
0F B5 / r
0F B5 / r
Description
Load a far pointer (segment selector and offset) from the second operand (source
operand) into a segment register and the first operand (destination operand). The
source operand specifies a 48-bit or a 32-bit pointer in memory depending on the
current setting of the operand-size attribute (32 bits or 16 bits, respectively). The
instruction opcode and the destination operand specify a segment
register/general-purpose register pair. The 16-bit segment selector from the source
operand is loaded into the segment register implied with the opcode (DS, SS, ES, FS, or
GS). The 32-bit or 16-bit offset is loaded into the register specified with the destination
operand.
If one of these instructions is executed in protected mode, additional information from
the segment descriptor pointed to by the segment selector in the source operand is
loaded in the hidden part of the selected segment register.
Also in protected mode, a null selector (values 0000 through 0003) can be loaded into
DS, ES, FS, or GS registers without causing a protection exception. (Any subsequent
reference to a segment whose corresponding segment register is loaded with a null
selector, causes a general-protection exception (#GP) and no memory reference to the
segment occurs.)
Operation
IF ProtectedMode
THEN IF SS is loaded
THEN IF SegementSelector = null
FI;
ELSE IF Segment selector index is not within descriptor table limits
OR Segment selector RPL  CPL
OR Access rights indicate nonwritable data segment
OR DPL  CPL
FI;
ELSE IF Segment marked not present
FI;
SS  SegmentSelector(SRC);
Volume 4: Base IA-32 Instruction Reference
Instruction
LDS r16,m16:16
LDS r32,m16:32
LSS r16,m16:16
LSS r32,m16:32
LES r16,m16:16
LES r32,m16:32
LFS r16,m16:16
LFS r32,m16:32
LGS r16,m16:16
LGS r32,m16:32
THEN #GP(0);
THEN #GP(selector);
THEN #SS(selector);
Description
Load DS: r16 with far pointer from memory
Load DS: r32 with far pointer from memory
Load SS: r16 with far pointer from memory
Load SS: r32 with far pointer from memory
Load ES: r16 with far pointer from memory
Load ES: r32 with far pointer from memory
Load FS: r16 with far pointer from memory
Load FS: r32 with far pointer from memory
Load GS: r16 with far pointer from memory
Load GS: r32 with far pointer from memory
4:255

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents