过程调用的执行步骤(p为调用者,q为被调用者)
(1)p将入口参数(实参)放到q能访问到的地方
(2)p保存返回地址,然后将控制转移到q;使用call指令 ---p过程
(3)q保存p的现场,并为自己的非静态局部变量分配空间; ---q过程准备阶段
(4)执行q的过程体(函数体); --q过程处理阶段
(5)q回复p的现场,释放局部变量空间;
(6)q取出返回地址,将控制转移到p。 使用ret指令 -- q过程结束阶段
现场:通用寄存器的内容
为何要保存现场:因为所有的过程共享一套通用寄存器
网友评论