程序调用过程

来源:互联网 发布:网络安全法展板 编辑:程序博客网 时间:2024/06/02 05:00

调用子函数的过程

主函数工作

参数入栈
  顺序与虚参数在参数列表相反。int fun(int a, int b),b先,a后。

返回值入栈
  此时,返回值还没有,位置先占住。

设置,保存返回地址
  入栈返回地址,函数从子函数返回时,继续从这里执行。
跳转
  eip=子函数入。

子函数工作

建栈
  入栈当前ebp。
  给ebp赋值,新的ebp要指向被调函数的栈底。所以,将当前函数栈顶地址esp直接赋值于ebp是最好的选择。

……执行子函数

参考文献

1.《编译系统透视:图解GCC编译器工作机制与实现原理》,新设计团队,机械工业出版社;

原创粉丝点击