菜鸟问题。求解! 。call sleep;

pks3000 2008-07-28 02:47:27
push 2700;
call Tleep;
retn

Tleep: push 01
call Sleep ;
retn

为什么会出错?

Tleep: push 01
call Sleep
retn 这个返回的不是上一个retn的地址了。而是 0x2700.

求解,谢谢!
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyjhField 2008-07-30
  • 打赏
  • 举报
回复
楼主这retn 后面也没有数据 会默认返回多大空间呢?
cnzdgs 2008-07-28
  • 打赏
  • 举报
回复
这样写:(采用C调用约定)
push 2700;
call Tleep;
add esp, 4
retn
或者:(采用stdcall调用约定)
Tleep: push 01
call Sleep ;
retn 4
chtitaxie 2008-07-28
  • 打赏
  • 举报
回复
retn 2
pigHead_chen 2008-07-28
  • 打赏
  • 举报
回复
push xx
retn
由于修改了堆栈数据,retn指令是只管读出堆栈顶部的值作为返回地址,就返回到了xx的地方了。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧