RETN 4,8,1C是什么意思?

踏实每一步 2010-06-23 02:33:21
我在看反汇编代码时,有RETN 4,8,1C。
...全文
717 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
太虚野老 2010-06-29
  • 打赏
  • 举报
回复
平衡堆栈
电信用户 2010-06-28
  • 打赏
  • 举报
回复
对,就是楼上说的stdcall平衡堆栈方式。
鄙视楼主,楼主不结贴
jizhongqing 2010-06-24
  • 打赏
  • 举报
回复
这种函数属于 stdcall 调用,被调函数平衡堆栈,就是平衡push进来的参数,一个参数大小为4,2个参数为8.。。。你看到 call xxxx; add esp xx时,这是主调函数平衡压入的参数
太虚野老 2010-06-24
  • 打赏
  • 举报
回复
如上,建议实际调试中检查一下esp指针变化
电信用户 2010-06-24
  • 打赏
  • 举报
回复
RETN 立即数
从栈中弹出两字节赋给IP,sp+2,然后sp再加立即数。
就是先执行完ret指令再把sp的值向后移立即数个位
大熊猫侯佩 2010-06-23
  • 打赏
  • 举报
回复
如上,建议实际调试中检查一下esp指针变化
zara 2010-06-23
  • 打赏
  • 举报
回复
就是 RET 后,将 (e)sp 再加上 4/8/1c。一般用来平衡调用函数/子程时参数压栈。这样在 call 之后的指令就不需要再通过 add (e)sp, 4/8/1c 或其它的方法来进行平衡,指令的执行和间洁度上都有改进。

21,459

社区成员

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

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