<<<    Index    >>>
3-637
INSTRUCTION SET REFERENCE
SGDT/SIDT—Store Global/Interrupt Descriptor Table Register 
(Continued)
Operation
IF instruction is IDTR
THEN
IF OperandSize = 16
THEN 
DEST[0:15] 
<
 IDTR(Limit);
DEST[16:39] 
<
 IDTR(Base); (* 24 bits of base address loaded; *)
DEST[40:47] 
<
 0;
ELSE (* 32-bit Operand Size *)
DEST[0:15] 
<
 IDTR(Limit);
DEST[16:47] 
<
 IDTR(Base); (* full 32-bit base address loaded *)
FI;
ELSE (* instruction is SGDT *)
IF OperandSize = 16
THEN 
DEST[0:15] 
<
 GDTR(Limit);
DEST[16:39] 
<
 GDTR(Base); (* 24 bits of base address loaded; *)
DEST[40:47] 
<
 0;
ELSE (* 32-bit Operand Size *)
DEST[0:15] 
<
 GDTR(Limit);
DEST[16:47] 
<
 GDTR(Base); (* full 32-bit base address loaded *)
FI; FI;
Flags Affected
None.
Protected Mode Exceptions
#UD
If the destination operand is a register.
#GP(0)
If the destination is located in a nonwritable segment.
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 an unaligned memory access occurs when the CPL is 3 and alignment
checking is enabled.
<<<    Index    >>>