深入理解计算机系统第3章-程序的机器级表示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010772289/article/details/83628749

第3章 程序的机器级表示

计算机执行机器代码。汇编代码是机器代码的文本表示。

过程:

过程调用需要栈来支持。

栈帧以两个指针界定,寄存器%ebp为帧指针,而%esp为栈指针。程序执行时,栈指针可以移动。
栈帧结构

假设过程P(调用者)调用过程Q(被调用者),则Q的参数放在P的栈帧中(参考上图中参数1,…n),P中的返回地址也被压入栈中,形成P的栈帧的末尾。返回地址就是当程序从Q返回时应该继续执行的地方。

过程的局部变量也保存在栈中。

过程示例

如下图,caller的栈帧存储了局部变量arg1,arg2。调用swap_add时,将swap_add参数压入栈,并将caller的返回地址压入栈。
过程定义和调用的示例

猜你喜欢

转载自blog.csdn.net/u010772289/article/details/83628749
今日推荐