第10章 目标代码生成.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 目标代码生成.ppt

第10章 目标代码生成 目标代码(单寄存器) 临时变量的存储空间分配 寄存器的分配和释放 10.1 目标代码 三种硬件地址模式 指令格式: Op #C R (立即-----寄存器) Op d(R1) R2 (存储器-----寄存器) Op R1 R2 (寄存器-----寄存器) 几个常见指令的含义 : Load Source R 从Source 读出送入R Op Source R Source op R结果 送入R Store Target R R的内容送入Target. 目标代码的生成(单寄存器) 形如(Op,A,B,T):Load A R;Op B R 形如(ASSIG,A,B):Load A R;Store R B 例:Z:= X*(a+b)* Y* (a+b) 标号和Jump的代码 标号到代码地址的对应表(flag, L, Addr) 形如(Label L): 当对应表中没有L项时:填写表项(1,L, Pc), Pc表示 下一条目标代码的地址。 当有L项(0, L, P’)时:从P’顺着链回填地址Pc 形如 (Jump L): 对应表中没有L项时构造链头P:(Jump,nil): 填写表项(0, L, P); 当有表项(0,L,P’)时:拉链P:(Jump P’),修改表项为 (0,L,P); 当有表项(1,L,P)时: 取出L的地址P生成代码。 过程/函数调用的代码 主要工作: 过函调用时:申请新AR空间 参数传递 转向 过程体 过函入口:填写AR的相关内容。 过函返回时: 释放AR区 恢复信息 返回值 参数传递的代码: 值参: (VALACT,a,off,1):Load a(sp) R Store off(top) R (VALACT,A,off,1):Load @A(sp) R Store off(top) R 变参: (VARACT,a,off,1):LoadA a(sp) R Store off(top) R (VARACT,A,off,1):Load A(sp) R Store off(top) R 过函形参: (PROCACT,p,off,1):Load Enter(p) R Store off(top) R (PROCACT,P,off,1):Load P(sp) R Store off(top) R 过函调用Call:传参; (Call,g,True):Jump Enter(g) (Call,G,False):Jump @G(sp) 入口 (Entry,Label,size,Level) : 填写AR信息; Load top sp ADD top size 出口(ENDPROC,---): 恢复调用前的信息和寄存器内容; 保存返回值; Load sp top; Load DyL(sp) sp; Jump Re_A(top) 10.2 临时变量 临时变量的静态分配 定值点:如果i中间代码给临时变量T定值, 则称i为临时变量T的定值点。 引用点:如果j中间代码使用T,则称j为T的 引用点。 活动区间:如果i是T的定值点,j是T的最后 引用点,则称[i, j]是T的活动区间。 活动区间[i, j]和[m, n]不严格相交: 如果m?j或i ?n。 空间分配: 如果两个临时变量的活动区间不严格相交,则可以 共享单元 10.3 寄存器 寄存器的分类: 可分配寄存器 保留寄

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档