计算机系统第三章——过程

什么是过程:在高级语言中也称为函数
过程的调用包括将数据和控制从代码的一部分传递到另一部分
在进入时为过程的局部变量分配空间,在退出时释放空间
大多数机器,只提供转移控制到过程和从过程中转移出控制这种简单指令
数据传递和局部变量的分配释放都是通过操纵程序栈来实现

为什么用栈:参数传递,局部变量,寄存器保存
防止有用寄存器内容被覆盖
%ebp:栈底指针
%esp:栈顶指针
%esp中的值小于或等于%ebp中的值,调用者的栈桢和被调用者栈桢是相邻的

任何函数第一步都是保存之前的ebp push %ebp
调用函数时要构造传递参数区,第一个参数放到esp,第二个参数放到esp+4
并且还要保存返回地址,不是push %ebp,是要接着执行的代码的地址

计算机系统第三章——过程_第1张图片

你可能感兴趣的:(计算机系统基础)