另见:
http://bbs.chinaunix.net/viewthread.php?tid=993238&extra=page%3D2%26amp%3Bfilter%3Ddigest&page=7
回复 #21 mik 的帖子
call dword ptr DS:call dword ptr DS:
vc6.0编译后得:
call DWORD PTR ds:255
call DWORD PTR ds:-1 原帖由 system888net 于 2008-4-24 21:48 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
call dword ptr DS:
call dword ptr DS:
vc6.0编译后得:
call DWORD PTR ds:255
call DWORD PTR ds:-1
汗~
好,就拿你这两条语句来说:
call dword ptr ds: 被编译成: 3e ff 15 ff 00 00 00
call dword ptr ds: 被编译成: 3e ff 15 ff ff ff ff
你自己说说是什么意思 原帖由 mik 于 2008-4-24 22:03 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
汗~
好,就拿你这两条语句来说:
call dword ptr ds: 被编译成: 3e ff 15 ff 00 00 00
call dword ptr ds: 被编译成: 3e ff 15 ff ff ff ff
你自己说说是什么意思
大侠直接说出自己的观点! 原帖由 system888net 于 2008-4-24 22:14 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
大侠直接说出自己的观点!
我说很容易呀 ,不是叫你说说看,你理解成什么嘛!
这样才会学习到呀 原帖由 mik 于 2008-4-24 22:18 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
我说很容易呀 ,不是叫你说说看,你理解成什么嘛!
这样才会学习到呀
请说出你的编译工具和环境.
另外64bit反对的结论也请大侠说出依据或实例! 原帖由 mik 于 2008-4-23 23:55 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
你的理解完全是错误的!
call dword ptr 这种形式是绝对地址,目标地址来自
至于:
在64位下:call dword ptr 这种形式的调用是错误的!
64位下,地址强制性为64位,不可能转为 ...
闹了半天,这句话不用不用争了:
"call dword ptr 这种形式是绝对地址,目标地址来自"
原文也是这个意思.也许是表述的不太好.
和大侠分歧最大是在64bit这里::)
对于64bit的说法,这里再描述一下:
address0: CALL DWORD PTR
在 32 位模式中,是调用地址 N32 中存储的 32 位指针值的指令:
在 64 位模式中,相同的操作码字节调用地址 address0+N32 中存储的 64 位指针值
指令本身也是5byte.
请大侠查清楚64bit的指令.
[ 本帖最后由 system888net 于 2008-4-24 22:47 编辑 ] 原帖由 system888net 于 2008-4-24 22:45 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
闹了半天,这句话不用不用争了:
"call dword ptr 这种形式是绝对地址,目标地址来自"
原文也是这个意思.也许是表述的不太好.
和大侠分歧最大是在64bit这里::)
对于64bit的说法,这里再 ...
从你的论述中,你还没明白 call dword ptr 的含义
以至于你会认为是5个字节,5个字节是错误的
至于你说的64位下,也不是等于你说的address0+n32
回复 #16 mik 的帖子
这是真正的分歧所在.对于64bit这次大侠的确有误
大侠自己可以测试一下或查一下intel的资料或与intel的人确认一下,再做结论.
如果大侠测试出不同的结果,请告知编译工具和平台,以便客观的进行交流.
可以看出大侠的汇编功底很好,这里顶一下,希望这个论坛更火爆. 原帖由 mik 于 2008-4-24 23:08 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
从你的论述中,你还没明白 call dword ptr 的含义
以至于你会认为是5个字节,5个字节是错误的
至于你说的64位下,也不是等于你说的address0+n32
是不是5个字节, 要指明编译器和平台,或见intel或者微软的<<开始进行 64 位 Windows 系统编程之前需要了解的所有信息>>