分享
分销 收藏 举报 申诉 / 11
播放页_导航下方通栏广告

类型目标代码生成.ppt

  • 上传人:pc****0
  • 文档编号:13361789
  • 上传时间:2026-03-07
  • 格式:PPT
  • 页数:11
  • 大小:55KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    目标 代码 生成
    资源描述:
    单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,目标代码生成器的位置:,源 中间 中间 目标程序 代码 代码 程序,编译前端 代码优化 代码生成器,符号表,目标代码的形式:,1、已定位的可立即执行的机器语言代码;,2、可浮动的机器语言代码,需装配连接再执行;,3、汇编语言目标代码,需汇编再执行。,第十一章 目标代码生成,目标代码应具有高效性:,目标代码较短;,充分利用寄存器减少内存访问。,11.1 一个简单的代码生成器,P312,中两个表给出了一个模拟机的指令系统(类似汇编)。,仅介绍一个简单的目标代码生成方法:,1、依次将每条中间代码变换成等价的若干条目标代码;,2、基本块内考虑充分利用寄存器的问题。,即:基本块内计算出的变量值尽量保留在寄存器中,,直至寄存器另有用途或已到基本块的出口;,引用变量时尽量用其在寄存器中的值。,例 现有赋值语句:,A:=(B+C)*D+E,其对应的中间码:,T1:=B+C,T2:=T1*D,A:=T2+E,则前述中间码可翻译为:,LDR,B,ADDR,C,STR,T1,LDR,T1,MULR,D,STR,T2,LDR,T2,ADDR,E,STR,A,设临时变量在基本块外不用,上述代码可简化。,LDR,B,ADDR,C,MULR,D,ADDR,E,STR,A,简化,若中间码,X:=Y+Z,可翻译为:,LD R,Y,ADD R,Z,ST R,X,为完成上述简化工作,应考虑到:,1、为省略,LD R,T1,必须知道,T1,已在寄存器中;,2、为省略,ST R,T1,必须知道,T1,在基本块外不用。,为此,我们引进“,待用信息,”、“,寄存器描述数组,”、“,变量地址描述数组,”等数据结构,记录所需信息。,一、,待用信息,为了:1.将块内还将引用的变量的值尽量保存在寄存器中;,2.将块内不再引用的变量占用的寄存器尽早释放。,引入:,待用信息,及,活跃信息,(记入符号表),。,待用信息:,对活跃变量记录下一次引用该变量的语句号;,对非活跃变量记“非待用”。,活跃信息:,还将被引用的变量记“活跃”;,不再被引用的变量记“非活跃”。,活跃信息及待用信息的构造算法:,1、在符号表中将本块各变量均填为“非待用”;,并根据该变量出口后是否引用填“活跃”或“非活跃”。,2、从出口向入口逆序扫描各语句,i:A:=B OP C,执行:,(1)在语句,i,后附加,A,的待用信息、活跃信息;,(2),A,的符号表中置:“非待用”、“非活跃”;,(3)在语句,i,后附加,B、C,的待用信息、活跃信息;,(4),B、C,的符号表中置:“待用,i”、“,活跃,y”。,注,(1)(2)(3)(4)次序不可颠倒,因,B、C,有可能为,A。,由此,各变量的引用信息由符号表及各语句的待用信息,所表示。,此外,每一条语句还应记录其中各变量的活跃信息及,待用信息。,变量 待用信息及活跃信息,T (,),A (,),B (,),C (,),变量 待用信息及活跃信息,U (,),V (,),W (,Y,),序号 中间代码语句 左值 左操作数 右操作数,1,T:=A-B,2 U:=A-C,3 V:=T+U,4 W:=V+U,(,),(,Y,),(,),(,),(,4,Y,),(,4,Y,),(,4,Y,),(,),(,),(,4,Y,),(,3,Y,),(,3,Y,),(,3,Y,),(,),(,),(,),(,3,Y,),(,),(,2,Y,),(,2,Y,),(,2,Y,),(,),(,1,Y,),(,1,Y,),例现有基本块为:,T:=A-B U:=A-C,V:=T+U,W:=V+U,且已知,W,在块后活跃,则由算法可得:,二、寄存器描述和地址描述,为合理分配寄存器,需掌握寄存器的使用情况,为此建立寄存器描述数组,RVALUE:,RVALUE,Ri,=A,表示寄存器,Ri,现为变量,A,的值;,为尽量引用变量在寄存器中的值,建立地址描述数组,AVALUE,,记录各变量的存放位置(,R,或,M):,AVALUEA=,Ri,(,或,A),表示变量,A,的值现在寄存器,Ri,中(或在内存中)。,三、代码生成算法,对基本块中每条代码,i:A:=B OP C,执行:,1、调用,GETREG(i:A:=B OP C),,此过程返回一个寄存,器,R,,用于存放,A,的值。,2、查,AVALUEB,及,AVALUEC,,确定,B、C,的现行存放,位置,B、C。,3、,若,BR,则生成,LD R B,OP R C,否则生成,OP R C,若,B=R,或,C=R,则从,AVALUEB,或,AVALUEC,中,删除,R;,4、,令,AVALUEA=R,且令,RVALUER=A,5、,若,B,C,在块内不再被引用,在块后不再活跃,且其现,行值在中,R,K,中,则从,RVALUER,K,中删除,B,C,,并,从,AVALUEB,AVALUEC,中,删除,R,K。,GETREG,过程:,1、若某,RVALUE,R,i,=B,且,B,在,i,的附加信息为(,),或,B,与,A,为同标识符,则,R=,Ri,。,2、,若不存在满足上述条件的寄存器,则选择某未分配的寄存器,R,i,,,令,R=,Ri,。,3、,若不存在满足上述条件的寄存器,则选择一个已分配的寄存器,R,i,,,令,R=,Ri,,,选择条件为:,(1),Ri,中变量的值已在内存。,(2),Ri,中变量的值在块内的下一个引用点最远。,对,RVALUE,R,i,中的每个,M(,由复写语句时,,R,i,分给多个变量)执行:,(1)若,MA;,或,M=A,且,M=C,则:,若,AVALUEM,不含,M,,生成,ST,R,i,M;,(2)AVALUEM=M。,(3),删除,RVALUE,R,i,中的,M。,例:见,P316,的例11.2,可用寄存器为,R0,R1.,(1)T:=A-B;,由,GETREG,过程第,2,条,,T,的寄存器分配为,R0,,因此生成:,LD R0,A,SUB R0,B,(2)U:=A-C;,由,GETREG,过程第,2,条,,U,的寄存器分配为,R1,,因此生成:,LD R1,A,SUB R1,C,(3)V:=T+U;,由,GETREG,过程第1条,,V,的寄存器分配为,R0,,因此生成:,ADD R0,R1,(4),W:=V+U;,由,GETREG,过程第1条,,W,的寄存器分配为,R0,,因此生成:,ADD R0,R1,在基本块的出口处,对现行值仅在,R,中且块后活跃的变量应使,用,ST,语句送入内存;此例最后应加,ST R,0,W。,P317,表11.4给出了各中间代码对应的目标代码。,十一章结束,
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:目标代码生成.ppt
    链接地址:https://www.zixin.com.cn/doc/13361789.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork