函数的调用流程总结

2022-09-15  本文已影响0人  冰雨9527

1 push参数,参数入栈

2 将函数的返回地址(下一条指令的地址)入栈

3 保护sp,将sp赋值给bp

4 分配一定的空间给函数的局部变量使用(让sp减去该空间大小),为了安全,用CC填充(int 3h)

5 保护寄存器, 因为在函数执行过程中会修改寄存器的值,所以在修改之前保存一下之前的值,后面再还原

6 具体的业务代码

7 恢复寄存器的值,跟第5步相反

8 将bp赋值给sp,恢复bp

9 返回(ret)

通过最终的汇编指令可以看出,在执行调用一个函数:本质就是通过call指令调用函数在代码段的地址进行直接调用。

上一篇下一篇

猜你喜欢

热点阅读