目标程序生成.pdf

上传人:l*** 文档编号:74328680 上传时间:2023-02-25 格式:PDF 页数:3 大小:139.73KB
返回 下载 相关 举报
目标程序生成.pdf_第1页
第1页 / 共3页
目标程序生成.pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《目标程序生成.pdf》由会员分享,可在线阅读,更多相关《目标程序生成.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1/3 实验八 目标程序生成【实验目的】了解目标代码生成阶段在编译处理过程中的功能和作用 了解常用的三种目标代码形式及其优缺点 了解虚拟机及其指令系统 深入理解并掌握有中间代码向目标代码转换的过程和原理 【实验学时】4 学时 【实验要求】熟练掌握虚拟机的指令系统 理解并掌握指令选择的方法 理解多寄存器分配的原则和方法 熟练掌握基本语句从四元式中间代码形式到目标代码的翻译原理和方法 独立完成目标代码生成程序【实验原理】一、四元式到目标代码的转换分析 1取 AG结构值对应的目标代码 四元式中间代码的操作分量和目标量以 RG 结构给出,在生成目标代码的过程中,首先要根据 AG 结构取得对应的值或者地

2、址,存入累加寄存器 ac 中,再生成运算的目标代码。从 ARG结构取值的过程如下表所示:ARG 结构种类 取值对应的目标代码 常量 c LDC,ac,c,标号b LD,a,a,源变量或临时变量 v 直接变量 取的绝对地址到 ac;(表2)LD,,0,ac 2/3 间接变量 取的绝对地址到c;(表2)L,ac1,0,ac D,a,0,c 2取变量的绝对地址对应的目标代码如下表所示:变量种类 取绝对地址对应的目标代码 源变量 DA,ac,lvel,dsplayoff AD,a,ac,sp LDC,c1,of,DD,a,ac,注:leel为变量 v所在的层数,off为变量的偏移。临时变量 LDC,a

3、c1,of,AD,c,sp,ac1 注:ff 为临时变量 t的偏移量 二、关键问题的处理 标号和跳转的处理:处理标号和跳转,需要用到标号地址表;表的结构为:中间代码标号 目标代码地址 下一项 ael stn net(1)遇到标号定位时:设标号为,应转向的目标代码为 p1,分为两种情况:在标号地址表中没有 L项,则填写表项(L,p1,NLL),并链入表尾;在标号地址表中有 L 项(,addr,Next),则根据当前 pc,回填 addr 对应的目标代码。(2)遇到跳转代码时:设要跳到的标号为 L,这条语句对应的目标地址为 p,分为两种情况:在标号地址表中没有 L项,则构造一个表项(,p2,NLL

4、),链入表尾;在标号地址表中有 L 项(L,p1,next),则从中取出的代码地址 p1,直接生成目标代码。2。形实参结合的处理:(1)形参为值参:实参是常数值:将常数值送入相应存储单元;实参是直接变量:找到变量的存储地址,取值,送相应存储单元;实参是间接变量:此时变量的存储单元存放的是地址。找到变量的存储地址,取内容作为地址,再取内容,得到实参值,送相应存储单元;(2)形参为变参:这时实参必须是变量,长度为 1.实参是直接变量:应将实参变量的地址送入形参单元;找到变量的存储地址,送相应存储单元;实参是间接变量:要送实参变量单元的内容;找到变量的存储地址,取内容,送相应存储单元.3 过程调用的

5、工作分配:由于过程调用中的有些工作是相同的,如果都放在调用语句处处理,当一个过程被多个过程调用时,就要重复很多目标代码。从语法树生成目标代码时,所有过程调用的处理工作都必须放在调用语句处进行处理。而从中间代码生成目标代码时,由于有过程入口和过程出口中间代码的存在,我们就可以把有些工作安排在子程序的入口和出口处完成。这样,过程调用中的整个工作(除过程体的执行部分)可分配到过程调用处,过程入口处和过程出口处。取RG结构值对应的目标代码示意表 取变量的绝对地址对应的目标代码示意表 3/3 这样就可以节省一些目标代码。具体分配如下:过程调用代码完成:保存旧的 display表的偏移量;设置新的 dislay表的偏移;保存返回地址;转向过程入口。过程入口处完成:保存 sp 值;保存层数;保存累加寄存器的内容,a,a1,ac 构造 NeR的 Disla表;修 改s 和top 值:s :=to ;top:=top+NewAR。Siz 过程出口处完成:恢复寄存器的内容;恢复 s和op 的值:top:=sp;s:=urrentAR。sp;取出返回地址,返回。【实验步骤】1熟悉虚拟机 TM 的指令系统 2根据中间代码指令和目标代码指令间的对应关系,将实验七中生成的中间代码程序映射为目标代码程序 3进行指令选择优化 4进行寄存器分配优化 5生成虚拟机上可运行的高效目标代码程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁