函数的调用过程(栈帧)
来源:互联网 发布:扭力弩炮 知乎 编辑:程序博客网 时间:2024/04/30 12:58
认识c/c++程序占用内存的分布:
简单看一下下面的程序:
#include<stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ int a = 10; int b = 20; int res=Add(a, b); printf("%d\n", res); system("pause"); return 0;}
f10调试后,打开查看堆栈窗口:
说明:main函数也是被其他函数调用的。
下面进入主题,函数调用过程:
分析主函数的栈帧:
注意call指令:
执行call指令时,f11走到下图所示:
再按f11,进入Add函数:
再看返回z是如何返回的出栈的时候,就使用pop指令依次让edi,esi,ebx,出栈。再将ebp赋给esp,pop 出edp,再回到main函数。
阅读全文
0 0
- 函数调用过程的真实情况(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 关于函数的调用过程(栈帧)
- 小结 | 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程(栈帧)
- 函数的调用过程--栈帧
- 函数调用的过程
- 函数调用的过程
- 函数调用的过程
- 函数的调用过程
- 函数的调用过程
- android studio在终端执行gradlew命令,报无效的环境
- eclipseUnable to build: the file dx.jar was not loaded from the SDK folder 错误
- 1.UE4入门篇
- Android移动开发-在Android项目里集成face++人脸识别的实现
- 常用正则表达式爬取网页信息及分析HTML标签总结
- 函数的调用过程(栈帧)
- 使用spring cloud config来统一管理配置文件
- 赋值中的类型转换
- vue生命周期及自定义指令
- python学习笔记--一些常用的tip
- 协方差矩阵
- 内置函数和匿名函数
- android 断点续传
- 微信小程序