栈:?在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。?
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。?
当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地址当成返回地址压入栈中(这个压栈操作隐含在call指令中);3、在被调函数中,被调函数会先保存调用者函数的栈底地址(push ebp),然后再保存调用者函数的栈顶地址,即:当前被调函数的栈底地址(mov ebp,esp);4、在被调函数中,从ebp的位置处开始存放被调函数中的局部变量和临时变量,并且这些变量的地址按照定义时的顺序依次减小,即:这些变量的地址是按照栈的延伸方向排列的,先定义的变量先入栈,后定义的变量后入栈;所以,发生函数调用时,入栈的顺序为:参数N参数N-1参数N-2.....参数3参数2参数1函数返回地址上一层调用函数的EBP/BP局部变
您可能关注的文档
- 电梯安装质量控制探索.doc
- 北京自助游行程安(全攻略)探究.doc
- 北岭山进口支护施工方案探究.doc
- 电梯工作原理探索.doc
- 差异化竞争战略描述.ppt
- 电梯基本常识探索.doc
- 电梯井施工方案探索.doc
- 北岭山隧道进口开挖施工方案探究.doc
- 电梯控制柜型式试验要求探索.doc
- 冠心病诊疗北京大学国际医院心内科王光亮医生探究.ppt
- 八年级地理第三单元工业区位填空题专项检测卷能力提升版.docx
- 八年级地理第八单元世界区域地理材料分析题题型强化卷易错强化版.docx
- 八年级地理第二单元经纬网判读读图题专题复习卷专项精练版.docx
- 八年级地理第二单元经纬网判读计算题高频题训练卷阶段诊断版.docx
- 八年级地理第二单元经纬网判读计算题诊断测试卷阶段诊断版.docx
- 八年级地理第二知识板块核心专题资源保护原因分析题达标诊断卷能力进阶版.docx
- 八年级地理第六单元昼夜长短材料分析题专题复习卷课外拓展版.docx
- 八年级地理第七单元河流特征分析图表题能力提升卷重难点突破版.docx
- 八年级地理第七单元河流特征分析图表题知识梳理卷重难点突破版.docx
- 八年级地理上册气温曲线图计算题高频题训练卷阶段诊断版.docx
最近下载
- 中国公路顶进管项目投资可行性研究报告.docx
- 工程车临时占道方案(3篇).docx VIP
- 下肢骨折术后康复护理全流程指南.pptx VIP
- 给排水国标图集-04S516:混凝土排水管道基础及接口.pdf VIP
- 【华创-2026研报】食品饮料行业调研报告:量贩零食鲜业态:湖南新鲜零食业态调研反馈.pdf VIP
- 2026年甘肃省辅警笔试试题含答案.docx VIP
- SB/T11150-2024中药材气调养护技术规范.pptx VIP
- 社区经济嵌入城市社区治理研究--以成都市S街道C社区为例.pdf
- 零碳园区 零碳工厂建设标准与实践方案.pptx VIP
- 美国-BROOKFIELD-博勒飞-DV2T-粘度计-操作手册说明书.pdf VIP
原创力文档

文档评论(0)