编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt

编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt

ID:50207974

大小:106.00 KB

页数:13页

时间:2020-03-10

编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt_第1页
编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt_第2页
编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt_第3页
编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt_第4页
编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt_第5页
资源描述:

《编译原理及实现技术 教学课件 作者 刘磊 第10章-目标代码生成.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章目标代码生成目标代码虚拟目标代码:虚拟机上的目标程序。在本地机器上具备虚拟机的解释器。实际目标代码:实际机器上的指令序列绝对地址机器代码:可重定位的机器代码:汇编代码:三种硬件地址模式指令格式:OpR#C(立即-----寄存器)OpR2d(R1)(存储器-----寄存器)OpR1R2(寄存器-----寄存器)几个常见指令的含义:LDRSource从Source读出送入ROpRSourceSourceopR结果送入RSTTargetRR的内容送入Target.表达式和赋值语句的翻译形如(Op,A,B,T):LDRA;OpRB形如(A

2、SSIG,A,B):LDRA;STBR例:Z:=X*(a+b)*Y*(a+b)(+,a,b,t1)LDRa;AddRb(*,X,t1,t2)STRt1;MultRX(*,t2,Y,t3)MultRY(*,t3,t1,t4)MultRt1输入/输出语句的翻译输入语句:(READ,A)INRSTA,R输出语句:(WRITE,A)LDR,AOUTR条件语句四元式的翻译(THEN,t,_,_)生成的目标代码为:LDR,tJUMP0R,__(ELSE,_,_,_)生成的目标代码为:JMP__同时回填JUMP0指令的目的地址(ENDIF,_,_,_

3、)不产生目标代码,只负责完成ELSE子句的地址回填工作。循环语句的翻译(WHILE,_,_,_)不产生目标代码,只用来标记while语句的入口地址。(DO,t,_,_)产生的目标代码为:LDR,tJUMP0R,_(ENDWHILE,_,_,_)产生的目标代码:JMPA回填前面DO四元式所产生的半条指令标号和goto语句的翻译(LABEL,_,_,L)不产生目标代码,只向L所分配到的存储单元写入转向地址。(GOTO,_,_,L)生成的目标代码为JMP*L过程、函数说明的翻译(ENTRY,Q,—,—)不产生目标代码,只需将当前指令地址A填入

4、Q的相应语义信息中。(ENDPROC,—,—,—)或(ENDFUNC,—,—,—)1.将本层活动记录中保存的机器状态恢复过来,对应一组读指令。2.删除本层活动记录,使动态外层的活动记录成为当前活动记录;3.按1(top)中记载的返回地址返回。目标代码为:STtop,spLDsp,0(top)//作废当前活动记录JMP1(top)//按返回地址返回过程、函数调用语句的翻译值参情形(ValACT,t,Offset,size)a.若t为间接变量,则生成的目标代码为:LDR,*tSToffset(sp),Rb.若t为直接变量,则生成的目标代码为

5、:LDR,tSToffset(sp),Rc.若t为数组,则生成的目标代码为:moveBt,offset(sp),size变参情形(VarACT,t,Offset,size)a.若t为直接变量,,则生成的目标代码为:LEAR,tSToffset(sp),Rb.若t为间接变量,,则生成的目标代码为:LDR,tSToffset(sp),R过程、函数调用语句的翻译过程、函数调用语句(CALL,f,—,t)1.生成填写变量访问环境指令2.把机器状态(寄存器内容)保存到活动记录的机器状态区中,一般应生成一组存的指令3.要填写管理信息.首先填写过程层

6、数.从过程f的语义信息中取其层数,填入到2(top)中,生成指令为LDR,sem[f].levelST2(top),R过程、函数调用语句的翻译4.填写动态链指针ST0(top),sp5.填写返回地址LDR,A+5//AST1(top),R//A+16.生成过程活动记录STsp,top//A+2STtop,top+sem[f].size//A+37.生成转向过程f入口的指令JMPsem[f].code//A+48.如果是函数调用,则把函数值读到寄存器中LDR,4(top)//A+5STt,R

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。