大家好,欢迎来到IT知识分享网。
操作码
指令 |
说明 |
|
0F 01 /2 |
LGDT m16&32 |
将 m 加载到 GDTR |
0F 01 /3 |
LIDT m16&32 |
将 m 加载到 IDTR |
说明
将源操作数中的值加载到全局描述符表格寄存器 (GDTR) 或中断描述符表格寄存器 (IDTR)。源操作数指定 6 字节内存位置,它包含全局描述符表格 (GDT) 或中断描述符表格 (IDT) 的基址(线性地址)与限制(表格大小,以字节计)。如果操作数大小属性是 32 位,则将 16 位限制(6 字节数据操作数的 2 个低位字节)与 32 位基址(数据操作数的 4 个高位字节)加载到寄存器。如果操作数大小属性是 16 位,则加载 16 位限制(2 个低位字节)与 24 位基址(第三、四、五字节)。这里,不使用操作数的高位字节,GDTR 或 IDTR 中基址的高位字节用零填充。
LGDT 与 LIDT 指令仅用在操作系统软件中;它们不用在应用程序中。在保护模式中,它们是仅有的能够直接加载线性地址(即,不是段相对地址)与限制的指令。它们通常在实地址模式中执行,以便处理器在切换到保护模式之前进行初始化。
如需有关存储 GDTR 与 IDTR 内容的详细信息,请参阅本章中的 SFENCE – 存储边界。
操作
影响的标志
无。
保护模式异常
#UD – 如果源操作数不是内存位置。
#GP(0) – 如果当前特权级别不是 0。如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS、或 GS 寄存器用于访问内存,并且它包含空的段选择器。
#SS(0) – 如果内存操作数有效地址超出 SS 段限制。
#PF(错误代码) – 如果发生页错误。
实地址模式异常
#UD – 如果源操作数不是内存位置。
#GP – 如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS – 如果内存操作数有效地址超出 SS 段限制。
虚 8086 模式异常
#GP(0) – 如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122818.html