首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
4
0
[讨论]"LGDT和SGDT指令分别用来读取和设置GDTR寄存器"这句话对吗?
发表于: 2014-4-23 11:25
17981
[讨论]"LGDT和SGDT指令分别用来读取和设置GDTR寄存器"这句话对吗?
yxhbboy
2014-4-23 11:25
17981
相信这里的很多大牛都读过《软件调试》这本书,偶今天也翻出来再浏览下内容,看有没有不懂的,浏览过程中,发现了这样一句话,这句话在第二章 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日开班!
收藏
・
4
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
7
)
yxhbboy
雪 币:
70
活跃值:
(15)
能力值:
( LV2,RANK:10 )
在线值:
发帖
13
回帖
347
粉丝
0
关注
私信
yxhbboy
2
楼
无人讨论~~~~~~~~~~~~~~~~~~~~~~~~看来我来错地方了!
2014-4-23 12:30
0
bUgmAny
雪 币:
84
活跃值:
(25)
能力值:
( LV3,RANK:20 )
在线值:
发帖
8
回帖
107
粉丝
0
关注
私信
bUgmAny
3
楼
手边没有书。。不过要按楼主说的。。你可以联系一下。作者。
c82K9s2c8@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
specter117
雪 币:
100
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
5
回帖
33
粉丝
0
关注
私信
specter117
4
楼
sgdt就是save gdt首地址到虚拟内存,疑惑的地方推荐查intel三部曲,这个最准确
2014-4-23 17:13
0
kman
雪 币:
155
活跃值:
(20)
能力值:
( LV2,RANK:10 )
在线值:
发帖
13
回帖
338
粉丝
2
关注
私信
kman
5
楼
应该是书写反了,LGDT是Load GDT的意思,也就是从虚拟机地址加载GDTR,即设置GDTR,SGDT是SAVE GDT,读取GDT.
没买过这本,看了下这个,貌似这部分错误还不少。
596K9s2c8@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
yxhbboy
雪 币:
70
活跃值:
(15)
能力值:
( LV2,RANK:10 )
在线值:
发帖
13
回帖
347
粉丝
0
关注
私信
yxhbboy
6
楼
我也看到了,跟在这句后面的也确实有问题。。。。。
2014-4-23 20:04
0
舒默哦
雪 币:
6101
活跃值:
(5729)
能力值:
( LV11,RANK:180 )
在线值:
发帖
10
回帖
153
粉丝
102
关注
私信
舒默哦
4
7
楼
他书里很多地方都写错了,前面寻址那儿也有错误。。。
2020-3-31 22:03
0
yiyah
雪 币:
25
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
1
粉丝
0
关注
私信
yiyah
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
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
yxhbboy
13
发帖
347
回帖
10
RANK
关注
私信
他的文章
[求助]关于CREATE_THREAD_DEBUG_EVENT的问题
2895
[讨论]4001151002牛逼的推销员
7103
[原创]aspack手动脱壳教程
13008
[原创]周末~~~~在家加班
3051
[原创]好好工作,天天向上
4311
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部