能力值:
(RANK:350 )
|
-
-
2 楼
1.是的,即使函数没有参数,至少得压入返回地址
2.是的,是的,不应该
3.没看懂你的问题
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
3.调用函数压栈时先要将参数入栈,然后是返回地址,所谓上一栈的ESP就是在参数入栈之前ESP的指向。堆栈平衡就是把ESP加上因为参数入栈而移动的字节数(栈内存由高到低生长)。具体的堆栈平衡方法由于调用约定的不同而不同,有的调用约定是在母函数处进行堆栈平衡,此时在母函数的call **指令后一般会有add esp,*,如C约定,有的调用约定是在子函数处进行堆栈平衡,一般是在返回时使用retn ?指令,其中?是一个需要移动的字节数。retn指令的作用就是弹出栈顶为下一条指令地址,并且将esp加上?个字节
|
|
|