"过程(函数)调用的机器级表示与参数传递方式"
过程调用是程序中常见的一种操作,其中函数之间的相互调用是程序整体逻辑的基础。在机器级表示中,一个过程调用的执行可以分为几个步骤:首先,调用程序(称为调用者P)将入口参数(实参)放到被调用程序(称为被调用者Q)能够访问到的地方;然后P保存返回地址,并将控制转移到Q;接着Q保存P的现场,并为自己的非静态局部变量分配空间;最后执行Q的函数体并返回结果给P,完成整个过程调用。 在一个具体的示例中,我们考虑了一个简单的add函数和一个main函数。在这个示例中,add函数接受两个整数参数x和y,将它们相加并返回结果;main函数则声明两个整型变量t1和t2,并调用add函数将它们相加,最后返回结果。 对于这个示例中的过程调用的机器级表示,首先需要将t1(值为125)和t2(值为80)分别传递给add函数中的形式参数x和y。这一过程通过使用栈(stack)来实现,栈在内存中的位置如图中所示。具体来说,调用者P在调用函数前将参数推入栈中,然后被调用者Q从栈中弹出这些参数并进行处理。 add函数执行完毕后,结果需要返回给调用者main函数。这一过程同样通过栈来完成,被调用者Q将结果存放在指定的位置,并在返回前将结果推入栈中,调用者P则从栈中弹出这个结果并继续执行。 总的来说,过程调用在机器级表示中是通过栈来传递参数和返回结果的。这一过程的执行在程序逻辑上是十分重要的,也是程序正常运行的基础。通过理解和掌握过程调用的机器级表示,可以更好地编写和优化程序,提高程序的效率和可维护性。南京大学计算机科学与技术系袁春风email: cfyuan@nju.edu.cn2015.6 int add ( int x, int y ) {return x y;} int main ( ) {int t1 = 125;int t2 = 80;int sum = add (t1, t2);return sum;}。
剩余17页未读,继续阅读
- 粉丝: 20
- 资源: 315
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析