<一>从指令角度了解函数堆栈调用过程

代码

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比朝阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式朝阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖朝阳地区。费用合理售后完善,10年实体公司更值得信赖。

点击查看代码
#include 
using namespace std;
int sum(int a,int b){	
	int temp=0;
	temp=  a +b;
	return temp;	
}

int main(){	
	int a =10;
	int b=20;
	int ret =sum(a,b);
	return 0;
}

以上代码考虑2个问题:
问题1:main函数调用sum,sum执行完成以后,怎么知道回到哪个函数中?
问题2:sum函数执行完后,回到main后,怎么知道从哪一行指令继续执行的?
//------------------------------------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------------------------------
函数参数压栈

//------------------------------------------------------------------------------------------------------------------
函数参数压栈

//------------------------------------------------------------------------------------------------------------------
下一条汇编指令地址入栈

//------------------------------------------------------------------------------------------------------------------
main函数栈底指针入栈

//------------------------------------------------------------------------------------------------------------------
移动ebp,进入被调函数

//------------------------------------------------------------------------------------------------------------------
为sum函数开辟函数栈帧

//------------------------------------------------------------------------------------------------------------------
将返回值放入寄存器

//------------------------------------------------------------------------------------------------------------------
回退esp栈指针

//------------------------------------------------------------------------------------------------------------------
将ebp指回main函数栈底

//------------------------------------------------------------------------------------------------------------------
取出下一条执行的汇编指令地址并执行

//------------------------------------------------------------------------------------------------------------------

此时 esp ,ebp 又指向了main函数的栈底指针和栈顶指针
//------------------------------------------------------------------------------------------------------------------


新闻名称:<一>从指令角度了解函数堆栈调用过程
本文地址:http://www.kmzsk.com/article/dsoiece.html

其他资讯

Copyright © 2026 昆明姝彩聂商贸有限公司 All Rights Reserved 滇ICP备2025072963号-9
友情链接: 成都网站制作公司 成都网站建设 企业网站设计 成都企业网站建设 四川成都网站制作 成都网站建设推广 网站建设公司 教育网站设计方案 成都网站设计 网站建设方案 高端定制网站设计 攀枝花网站设计 成都网站制作 定制网站建设 成都网站设计 成都网站建设公司 成都网站设计 成都网站设计 广安网站设计 达州网站设计 网站设计公司 成都响应式网站建设公司