运行时的过程活动记录与 栈区的组织结构 e过程活动记录(AR:过程的一个现场记录 记录内容: 今过程控制信息:先行活动记录的动态链指针、 返回地址、层数和长度等 令机器状态信息:寄存器状态等 ◆全局变量信息:非局部变量的信息 ◆局部变量值:形参变量、局部变量和临时变量
运行时的过程活动记录与 栈区的组织结构 过程活动记录(AR):过程的一个现场记录 记录内容: ❖过程控制信息:先行活动记录的动态链指针、 返回地址、层数和长度等 ❖机器状态信息:寄存器状态等 ❖全局变量信息: 非局部变量的信息 ❖局部变量值:形参变量、局部变量和临时变量
AR的结构 临时变量区 局部变量区 本层变量和返回值 形参变量区 返回值 全局变量环境 全局变量信息 机器状态 机器状态信息 过程层数 返回地址 控制状态信息 动态链指针 sp
AR的结构: 动态链指针 返回地址 过程层数 机器状态 全局变量环境 返回值 形参变量区 局部变量区 临时变量区 控制状态信息 机器状态信息 全局变量信息 本层变量和返回值 sp
例 Procedure p(i: integer) Var y: real; a: array[1. 10]of integer Begin y: =a[i]*25 end 则过程p被调用时的活动记录AR结构如下: Offset 23 a Offset =13 y Offset =11 Offset 10 返回值 全局信息 机器信息 sp 控制信息 Offset =0
例: Procedure p(i:integer); Var y:real; a:array[1..10]of integer; Begin y:=a[i]*25 end 则过程p被调用时的活动记录AR结构如下: 控制信息 机器信息 全局信息 返回值 i y a Offset = 10 Offset = 11 Offset = 13 Offset = 23 sp Offset = 0