第7章-运行时存储空间组织.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章-运行时存储空间组织资料

Pascal过程调用规则 (1)任何子程序都不能调用主程序,主程序可直接调用所有第1层的子程序。 (2)任何子程序(包括主程序)可直接调用自己的直接内层子程序,但不能直接调用隔层的内层子程序。 (3)内层子程序可以直接调用自己及它的任何一层外层子程序(不包括主程序)。 (4)并列子程序中后说明的可以调用先说明的,而先说明的不能调用后说明的(除非采用向前引用的方式)。 (5)一个子程序可以调用所有与自己的某个外层子程序并列,且其说明先于这个外层子程序的子程序。 (6)Pascal语言允许子程序自己调用自己,这种调用方式称为递归调用 嵌套过程语言活动记录 作业 P269 4 5 diaplay表在活动记录中的相对地址d在编译时能完全确定。 假定在现行过程中引用了某层过程(令其层次为k)的X变量,那么,可用下面两条指令获得X的地址: LD R1 (d+k)[SP] LD R2 dx[R1] 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 SP? 0 1 2 老SP TOP? Display 表 全局Diaplay 3 d … program P; var a, x : integer; procedure Q(b: integer); var i: integer; procedure R(u: integer; var v: integer); var c, d: integer; begin if u=1 then R(u+1, v) ...... v:=(a+c)*(b-d); ...... end {R} begin ...... R(1,x); ...... end {Q} procedure S; var c, i:integer; begin a:=1; Q(c); ...... end {S} begin a:=0; S; ...... end. {P} 主程序P ?过程 S ?过程 Q ?过程 R ?过程 R 0 0 返回地址 1 0(display) 2 a 3 x 4 0 5 返回地址 6 2(全局display) 7 0(形参个数) 8 0 9 5 10 主程序?过程 S c 11 i 12 TOP? SP ? 动态链 display 0 0 返回地址 1 0(display) 2 a 3 x 4 0 5 返回地址 6 2(全局display) 7 0(形参个数) 8 0 9 5 10 主程序P?过程 S ?过程 Q c 11 i 12 动态链 5 13 返回地址 14 9(全局display) 15 1(形参个数) 16 b(形参) 17 0 18 13 19 i 20 TOP? SP ? 0 0 返回地址 1 0(display) 2 a 3 x 4 0 5 返回地址 6 2(全局display) 7 0(形参个数) 8 0 9 5 10 主程序P?过程 S ?过程 Q ?过程 R c 11 i 12 动态链 5 13 返回地址 14 9(全局display) 15 1(形参个数) 16 b(形参) 17 0 18 13 19 i 20 13 21 返回地址 22 18(全局display) 23 2(形参个数) 24 u(形参) 25 v(形参) 26 0 27 13 28 21 29 c 30 d 31 TOP? SP ? 0 0 返回地址 1 0(display) 2 a 3 x 4 0 5 返回地址 6 2(全局display) 7 0(形参个数) 8 0 9 5 10 主程序P ?过程 S ?过程 Q ?过程 R ?过程 R c 11 i 12 动态链 5 13 返回地址 14 9(全局display) 15 1(形参个数) 16 b(形参) 17 0 18 13 19 i 20 13 21 返回地址 22 18(全局display) 23 2(形参个数) 24 u(形参) 25 v(形参) 26 0 27 13 28 21 29 c 30 d 31 TOP? SP ? 21 32 返回地址 33 27(全局display) 34 2(形参个数) 35 u(形参) 36 v(形参) 37 0 38 13 39 32 40 c 41 d 42 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 老SP Display 表 全局Diaplay 1. 每个par Ti(i=1,2,…n)可直接翻译成如下指令: (i+4)[TOP]:= Ti (传值) (i+4)[TOP]:=addr(Ti ) (传地址) 过程调用、过程进入、过程返回 TOP? SP ? 调用过程的 活动记录 ……

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档