有人能指导一下64位的一段汇编代码吗?

苦逼热狗

路边通讯社社长
VIP
注册
2002-10-12
消息
47,114
荣誉分数
2,376
声望点数
393
PUSH 004F5618 ;UNICODE "STRING"
PUSH ESI
CALL 004XXXXXXX ;自己的一个STRING比较函数
ADD ESP,8
TEST EAX,EAX
JNZ SHORT 004XXXXXX
MOV EAX,0A0
RETN
//----------//

这么一段32位汇编吗,到64位程序下头以后就彻底的无影无踪了,有谁能讲解一下64位程序的一些结构啥的吗?还有汇编时候,原来那些PUSH XXXX之类的东西变成啥了?
 
你都能试,就不能反汇编一下其它的程序吗?
也可以去下个linux kernel的源码,里面也有些源码的,你可以参考。
 
第一个push的是一个指针,在64为系统里是8bytes,call 之后的add esp 8实际上漏了,应该改为add esp 12.堆栈混乱了之后ret自然就完蛋了.
 
.................我没说明清楚问题
but anyway了,已经解决了
就是郁闷,VS2005里头要想c++/asm混编好麻烦
 
推荐二楼的听听罗胖子的"术语",我贴一个,看看行不行.
[music]http://www.vickizhaowei.com/attachments/laoluo2/24.术语.mp3[/music]
 
后退
顶部