编译技术作者陈文宇07课件.pptVIP

  • 1
  • 0
  • 约4.99千字
  • 约 43页
  • 2016-12-25 发布于广东
  • 举报
程序的存储空间 1. 代码空间和数据空间 1.1 程序投入运行的必要条件 程序要投入运行,必须在内存中分配一定的存储空间,并将程序装入其中,包括: 可运行的代码(代码空间) 代码运行的环境(数据空间) 1.2 代码空间(C) 内容:线性存放着目标指令序列。当前执行的指令位置由指令指针ip指示。 1.3 数据空间(D) 内容:变量、常数、控制信息、描述符等。 静态分配:在运行前就可确定数据空间的大小, 在编译时刻就能进行的存储分配。 动态分配:运行时才能进行的存储分配。 活动记录 程序由程序单元(函数、子程序)组成,因此程序的数据空间由相应程序单元的数据空间组成。 一个程序单元的数据空间叫做该程序单元的活动记录。 一个程序单元在执行过程中所需要的数据信息、管理信息都是通过它的活动记录来存放的。 一个程序单元的每一次激活,都应在内存中建立相应的活动记录。 活动记录的内容 (1) 返回地址 (2) 动态连接 (3) 静态连接 (4) 现场保护 (5) 参数区 (6) 变量区 活动记录的特点 除了变量存储区外,其余部分存储长度编译时可以确定,所以变量 i 的地址可用下式表示: D + offset(i) 其中, D是活动记录的首地址;offset(i)是变量 i 在活动记录中的位移。 变量的类型 1) 静态变量 编译时可以确定活动记录的首地址D和变量的相对位置offse

文档评论(0)

1亿VIP精品文档

相关文档