首页
社区
课程
招聘
[讨论]"LGDT和SGDT指令分别用来读取和设置GDTR寄存器"这句话对吗?
发表于: 2014-4-23 11:25 17983

[讨论]"LGDT和SGDT指令分别用来读取和设置GDTR寄存器"这句话对吗?

2014-4-23 11:25
17983
相信这里的很多大牛都读过《软件调试》这本书,偶今天也翻出来再浏览下内容,看有没有不懂的,浏览过程中,发现了这样一句话,这句话在第二章 CPU基础的第52页,讲描述表的。
这句话的原话是:"LGDT和SGDT指令分别用来读取和设置GDTR寄存器",就这句话,深深的把我钉在上面了,这句话对吗?我的理解是SGDT指令是用来读取或者保存GDTR寄存器的内容到指定的虚拟内存的吧,而不是用来设置的吧?“设置GDTR寄存器是什么意思?我打个比方,如我要把ecx寄存器的内容的设置为1,我应该是这样做
_asm
{
  xor ecx,ecx
   mov ecx,1
}
这样之后ecx的值就为1了,同样的道理设置GDTR寄存器的内容。
我理解的sgdt指令应该是下面这样的:
—asm
{
dgtrV:
    _emit 0xff
     .
     .
     .
   sgdt dgtrV//这里的dgtrV是用来保存GDTR寄存器内容的虚拟地址吧!,也就是保存GDTR寄存  器内容到指定虚拟地址.
}

如果按照书上的说法,那这该如何解释?

我觉得这句话很有二异性,给了不准确的解释。难道"设置"还有另外一层意思?我才疏浅薄,大家一起来讨论。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 70
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
无人讨论~~~~~~~~~~~~~~~~~~~~~~~~看来我来错地方了!
2014-4-23 12:30
0
雪    币: 84
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
手边没有书。。不过要按楼主说的。。你可以联系一下。作者。f6eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4V1N6X3c8T1k6#2)9J5k6h3!0J5k6#2)9J5c8X3u0G2L8$3E0K6i4K6u0r3M7%4N6V1j5X3N6Q4x3V1k6W2M7Y4u0S2N6r3q4Q4x3X3g2S2M7%4m8^5i4@1f1$3i4@1t1J5i4@1p5I4i4@1f1#2i4K6R3%4i4K6R3$3i4@1f1#2i4K6S2r3i4@1q4r3i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1#2i4K6R3%4i4@1u0m8i4@1f1%4i4K6S2q4i4@1t1H3i4@1f1#2i4K6W2o6i4@1p5^5i4@1f1^5i4@1u0r3i4K6V1&6i4@1f1&6i4K6R3%4i4K6S2o6i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1K6i4K6R3H3i4K6R3J5
2014-4-23 12:37
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
sgdt就是save gdt首地址到虚拟内存,疑惑的地方推荐查intel三部曲,这个最准确
2014-4-23 17:13
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
应该是书写反了,LGDT是Load GDT的意思,也就是从虚拟机地址加载GDTR,即设置GDTR,SGDT是SAVE GDT,读取GDT.

没买过这本,看了下这个,貌似这部分错误还不少。
5a5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4m8S2L8W2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3M7$3S2S2M7X3g2Q4x3V1k6D9K9h3&6C8i4K6y4r3M7$3S2S2M7X3g2A6k6q4)9K6c8o6R3&6y4o6V1%4x3U0p5I4x3#2)9J5y4Y4g2C8i4K6y4p5x3e0x3J5y4U0V1&6x3U0j5H3y4q4)9J5y4X3k6A6k6q4)9K6c8o6p5#2x3o6t1@1y4U0f1$3y4K6f1`.

就在你后面那句,"LIDT和SIDT指令分别用来设置IDTR寄存器“。。。。。这完全是语文问题了,审校该打屁屁
2014-4-23 19:48
0
雪    币: 70
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也看到了,跟在这句后面的也确实有问题。。。。。
2014-4-23 20:04
0
雪    币: 6101
活跃值: (5729)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
7
他书里很多地方都写错了,前面寻址那儿也有错误。。。
2020-3-31 22:03
0
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
• LGDT (Load GDTR Register) — Loads the GDT base address and limit from memory into the GDTR register.
• SGDT (Store GDTR Register) — Stores the GDT base address and limit from the GDTR register into memory.

x86 汇编用法:
lgdt [gdt_ptr]; 把 gdt_ptr 标号的内容存到 GDTR 寄存器
sgdt [gdt_ptr]: 把 GDTR 寄存器的内容存到 gdt_ptr 标号处
2022-6-20 21:11
0
游客
登录 | 注册 方可回帖
返回