4. CALL P的处理 (1)保存返回地址 DI free lp+20 (2)保存主调过程的 current D Ifree +4]:=current (3)建立P的 current current free (4)调整fe free -free +L (5)转子 p:=P的代码段首地址
4. CALL P 的处理 (1)保存返回地址 D [ free ] := ip + 20 (2)保存主调过程的current D [free + 4] := current (3)建立P的current current := free (4)调整free free := free + L (5)转子 ip := P的代码段首地址
过程A中调用了P current 返回地址 动态连接 A的活动记录 free 返回地址 动态连接 即将建立的 P的活动记录
返回地址 动态连接 返回地址 动态连接 A的活动记录 即将建立的 P的活动记录 current free 过程A中调用了P
进入过程P以后 返回地址 动态链 A的活动记录 current 返回地址 动态链 P的活动记录 fr ee
返回地址 动态链 返回地址 动态链 A的活动记录 P的活动记录 current free 进入过程P以后
5 RETURN语句的处理 (1)恢复free fre ee current (2)恢复主调过程的 current current: =D[current +41 (3)返回 ip: D [freel
5. RETURN语句的处理 (1)恢复free free := current (2)恢复主调过程的current current := D[current + 4] (3)返回 ip := D [free]
三.半静态变量的栈式分配 1.活动记录内容 返回地址 动态链 静态链 保护区 参数单元 局部变量 临时变量 数组存储区 其中,局部变量中包括数组的描述符
二. 半静态变量的栈式分配 1. 活动记录内容 返回地址 动态链 静态链 保护区 参数单元 局部变量 临时变量 数组存储区 其中,局部变量中包括数组的描述符