当前位置: 代码迷 >> 汇编语言 >> 容易汇编求解读。
  详细解决方案

容易汇编求解读。

热度:301   发布时间:2016-05-02 04:47:13.0
简单汇编求解读。。。
本人小菜,有一个简单c程序,转成汇编后有一句不懂,求大大解释下,x86。


看不懂的是汇编的第28行,我知道它的目的是为了传递fun的参数,但是%esp是保存的栈顶指针,它在这里向里面写数据了,却没有加%esp的值,那么下次执行push的时候不就会覆盖这个值了么?本人很菜,求不喷啊。。
汇编

------解决方案--------------------
按照堆栈的特性,手工压入数据的话,应该是先减 esp 然后再将参数存在 [esp] 吧,而不是加 esp 的值;所以,看 25 行,esp 减了 $20 ,即是为三个局部变量 a,b,c 的空间,也有这个参数所需要的空间。
看上面的 11 行,那个象是 3 的应该是 8 吧?你着截图是自己拼接过的?如果是 3 的话,就很费解了。
------解决方案--------------------
引用:
按照堆栈的特性,手工压入数据的话,应该是先减 esp 然后再将参数存在 [esp] 吧,而不是加 esp 的值;所以,看 25 行,esp 减了 $20 ,即是为三个局部变量 a,b,c 的空间,也有这个参数所需要的空间。
看上面的 11 行,那个象是 3 的应该是 8 吧?你着截图是自己拼接过的?如果是 3 的话,就很费解了。
涨知识
  相关解决方案