第10章目标程序运行时的存储组织.ppt.ppt

第十章 目标程序运行时的组织 ;概述;目标代码区: 存放目标代码,即编译时能确定的; 静态数据区: 存放编译时能确定所占空间的数据; 堆栈区: 存放可变数据及管理过程活动的控制信息;5、术 语;10.1 数据空间的三种不同使用方法和管理方法;10.1.3 栈式动态分配 1、整个程序的数据空间设计为一个栈: 符合“先申请后释放,后申请先释放”的原则 —调用过程时,所需的数据空间分配到栈顶 —退出过程时,释放其所占的栈顶空间,恢复调用者现场并继续运行 2、过程所需的数据空间 —数据对象:局部变量,参数单元,临时变量等 —过程活动记录信息:当前机器状态信息,程序计数器,寄存器值等 10.1.4堆式动态存储分配 有些语言允许用户自由地申请和释放空间,必须使用堆式存储结构,未必遵从先进先出,后进先出原则。 如:free(), new , dispose等 ;一、过程的活动记录(AR): 一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区(块)叫做一个活动记录;10.2.1 简单的栈式分配的实现;若语言允许可变数组,则其活动记录内容如上。; ; 10.2.2 嵌套过程语言的栈式实现; ;二.静态链表(PL/0) 以PL/0为例: const a=10; var b,c; procedure p; beg

文档评论(0)

1亿VIP精品文档

相关文档