C语言拾遗(六):分析C语言的函数调用过程
摘要:
一个过程调用包括将数据和控制从代码的一部分传递到另一部分。另外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放这些空间。
实现过程调用,编译器使用了一个基于栈的方法。栈,先进后出。机器用栈来传递过程的参数,存储返回信息,保存寄存器等等。
1. call function:将返回地址入栈,并跳转到function的起始处。
2. leave:使栈做好返回的准备。
3. ret:返回,从栈中弹出地址,并跳转到这个位置。 阅读全文
posted @ 2013-04-30 17:29 Randy Xu 阅读(1637) 评论(1) 推荐(3) 编辑