函数的调用过程,栈帧的创建和销毁

来源:互联网 发布:网络课程视频加速器 编辑:程序博客网 时间:2024/06/07 02:59

     在此,主要为大家介绍一下函数调用的过程,以及函数调用与栈帧的关系。以下为在visual c++ 6.0 下实现的函数调用,具体程序如下:


进行反汇编,如下图:


该过程为形成main函数的栈帧过程,利用call指令指向下一条指令的地址,然后跳转到add函数的地方。如下图;


进入add函数,如下图:


该过程是在main函数栈帧的基础上,再形成add函数的栈帧,接下来就是add函数的返回过程,如下图;


该过程释放了add函数所用的存储的栈帧空间,运行完add函数,跳转到main函数的返回代码处,如下图:


该过程释放了main函数的栈帧空间,返回a+b的结果。

  综上,函数的调用就是在一个栈空间内不断形成各个函数的栈帧,当结果计算完成后,再不断释放这些函数形成栈帧的空间。从而可以使栈空间可以循环使用。希望对大家的栈帧学习有所帮助。

阅读全文
0 0
原创粉丝点击