2013年4月30日

C语言拾遗(六):分析C语言的函数调用过程

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

posted @ 2013-04-30 17:29 Randy Xu 阅读(1631) 评论(1) 推荐(3) 编辑

导航