函数的调用过程,栈帧的创建和销毁
来源:互联网 发布:网络课程视频加速器 编辑:程序博客网 时间:2024/06/07 02:59
在此,主要为大家介绍一下函数调用的过程,以及函数调用与栈帧的关系。以下为在visual c++ 6.0 下实现的函数调用,具体程序如下:
进行反汇编,如下图:
该过程为形成main函数的栈帧过程,利用call指令指向下一条指令的地址,然后跳转到add函数的地方。如下图;
进入add函数,如下图:
该过程是在main函数栈帧的基础上,再形成add函数的栈帧,接下来就是add函数的返回过程,如下图;
该过程释放了add函数所用的存储的栈帧空间,运行完add函数,跳转到main函数的返回代码处,如下图:
该过程释放了main函数的栈帧空间,返回a+b的结果。
综上,函数的调用就是在一个栈空间内不断形成各个函数的栈帧,当结果计算完成后,再不断释放这些函数形成栈帧的空间。从而可以使栈空间可以循环使用。希望对大家的栈帧学习有所帮助。
阅读全文
0 0
- 函数的调用过程,栈帧的创建和销毁
- 函数的调用过程,栈帧的创建和销毁。
- 函数的调用过程,栈帧的创建和销毁
- 函数的调用过程,栈帧的创建和销毁。
- 函数的调用过程,栈帧的创建和销毁
- 函数的调用过程,栈帧的创建和销毁
- 函数调用过程,栈帧的创建和销毁
- 函数调用过程,栈帧的创建和销毁
- 函数的调用过程,栈桢的创建和销毁
- 函数的调用过程,栈桢的创建和销毁。
- 函数的调用过程、栈帧的创建以及销毁
- 函数的调用过程,栈帧的创建与销毁
- 【C】函数的调用过程,栈帧的创建和销毁
- 谈谈函数的调用过程,栈帧的创建和销毁。
- 函数的调用过程(栈帧的创建和销毁)
- 浅谈函数的调用过程,栈帧的创建和销毁,附图讲解
- 函数调用的具体过程以及栈帧的创建和销毁
- 第三篇 函数的调用过程 栈帧的创建和销毁
- centos7 安装gitlab
- PAT乙题1022. D进制的A+B (20)
- 彻底搞清RPC模块设计与实现
- 最大子序列(P1085),子矩阵( P1086)存一下思路
- 程序员的自我修养:MiniCRT自制C语言运行库
- 函数的调用过程,栈帧的创建和销毁
- PAT乙题1023. 组个最小数 (20)
- PAT乙题1026. 程序运行时间(15)
- Boolan博览网C++开发课程第三周笔记
- linux 0.11 内核完全注释V3.0学习笔记(一)
- 1004 0-1背包问题
- Matlab画三维立体网状图形(类似魔方)
- 不同级别并发理解
- PAT乙级1027. 打印沙漏(20)