简单汇编求解读。。。
本人小菜,有一个简单c程序,转成汇编后有一句不懂,求大大解释下,x86。
看不懂的是汇编的第28行,我知道它的目的是为了传递fun的参数,但是%esp是保存的栈顶指针,它在这里向里面写数据了,却没有加%esp的值,那么下次执行push的时候不就会覆盖这个值了么?本人很菜,求不喷啊。。 汇编
[解决办法]
按照堆栈的特性,手工压入数据的话,应该是先减 esp 然后再将参数存在 [esp] 吧,而不是加 esp 的值;所以,看 25 行,esp 减了 $20 ,即是为三个局部变量 a,b,c 的空间,也有这个参数所需要的空间。
看上面的 11 行,那个象是 3 的应该是 8 吧?你着截图是自己拼接过的?如果是 3 的话,就很费解了。
[解决办法]