操作碼 |
指令 |
說明 |
0F 00 /2 |
LLDT r/m16 |
將段選擇器 r/m16 載入到 LDTR |
將源運算元載入到區域性描述符表格暫存器 (LDTR) 的段選擇器欄位。源運算元(通用暫存器或記憶體位置)包含指向區域性描述符表格 (LDT) 的段選擇器。段選擇器載入到 LDTR 之後,處理器使用段選擇器在全域性描述符表格 (GDT) 中確定 LDT 的段描述符的位置。接著,它將 LDT 的段限制與基址從段描述符載入到 LDTR。此指令不影響段暫存器 DS、ES、SS、FS、GS 及 CS,也不影響當前任務的任務狀態段 (TSS) 中的 LDTR 欄位。
如果源運算元是 0,則將 LDTR 標記為無效,並且所有對 LDT 中描述符的引用(LAR、VERR、VERW 或 LSL 指令進行的引用除外)都將導致一般保護性異常 (#GP)。
運算元大小屬性不影響此指令。
提供的 LLDT 指令用於操作系統軟體;不應該在應用程式中使用它。另外,此指令只能在保護模式中執行。
IF SRC[Offset) > descriptor table limit THEN #GP(segment selector); FI;
Read segment descriptor;
IF SegmentDescriptor(Type) LDT THEN #GP(segment selector); FI;
IF segment descriptor is not present THEN #NP(segment selector);
LDTR(SegmentSelector) SRC;
LDTR(SegmentDescriptor) GDTSegmentDescriptor;
無。
#GP(0) - 如果目前特權級別不是 0。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS 或 GS 暫存器包含空的段選擇器。
#GP(選擇器) - 如果選擇器運算元不指向“全域性描述符表格”,或是 GDT 中的專案不是“區域性描述符表格”。段選擇器超出 GDT 的限制。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#NP(選擇器) - 如果 LDT 描述符不存在。
#PF(錯誤程式碼) - 如果發生頁錯誤。
#UD - LLDT 指令無法在實地址模式中識別。
#UD - LLDT 指令可以在虛 8086 模式中識別。