已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第六章第六章 目标代码生成目标代码生成 一 概述 1 目标代码的形式 (1)能立即执行的目标代码; (2)待装配的浮动目标代码; (3)汇编语言目标代码. 2 目标代码生成原则 (1) 生成的目标代码短而高效; (2) 充分利用寄存器,减少访问内存的次数. 2 二 计算机模型 假设计算机只有四种类型的机器指令: 指令类型 指令形式意义 直接地址型 op ri,m(ri)op(m) ri 寄存器型 op ri,rj(ri)op(rj) ri 变址型 op ri,c(rj)(ri)op(rj)+c) ri 间址型 op ri,*m(ri)op(m) ri op ri,*rj(ri)op(rj) ri op ri,* c(rj) (ri)op(rj)+c) ri 3 三 代码生成器及辅助信息 基本思想: 当生成计算某变量值的目标代码时,尽量让该变量 的值保存在某个寄存器中,直到该寄存器要用来存放其它变量的值 或者基本块结束之前不再引用该变量的值,才把该变量的值存放 到存储器中. 为了能知道某变量的值是否在寄存器中,在那个寄存器中,是 否该送回内存中等,需要一些辅助信息. 1 待用信息 当翻译到四元式 a:=b op c 时,我们需要知道基本块内后面 的四元式是否还引用 a b c ,是哪些四元式引用? 定义: 设四元式(i) 对a定值且到达四元式( j) ,四元式 ( j) 中引用 a ,则称 j 是四元式 i 的变量a 的待用信息; 满足上述定义 的所有 j, 构成了 a 的待用信息集. 4 采用如下方式表示待用信息集,为每个四元式建立一个如下的表项: 定值名 指针 引用名1 指针 引用名2 指针 a * b * c * a * b nil c nil 通过链表把 a 的所有待用信息连接起来.当执行到 a:=b op c 时,就可以检查待用信息链,确定 a b c 在该四元式之后是否还引 用(若为 nil ,表示不再引用, 此时,应将非活跃变量的寄存器释放, 存入内存中). 5 2 寄存器描述 假设系统可以使用的寄存器为: r1,r2,rn 每个寄存器都需要描述是否被占用,被哪些变量占用? 假设 rvalue ri 为集合类型,用于描述寄存器 ri 的使用情况, 也即哪些变量同时占用了 ri. 3 变量描述 在翻译过程中,应了解基本块中的每个变量的存储状况,确定 变量的值是在寄存器中还是在内存中? 假设 avalue a 为集合类型,用于描述变量 的存储情况: avalue a= ri a的有效值在寄存器中; m a的有效值在内存中; ri,m 均有效. 6 4 代码生成算法 下面,仅讨论一般情形 a:=b op c 的代码翻译, getreg( a:= b op c) 函数返回一个寄存器 r ,存放变量 a的值. 代码生成算法: (对四元式 a:= b op c) (1) 令 r = getreg( a:= b op c) ; (2) 由 avalue a , avalue b 确定 变量 b c 值的有 效存储位置 b,c (3) 若 b=r 生成 机器指令 op b,c 否则 生成机器指令 mov r,b op r,c 若 b=r ,则删除 avalue b 中的 r ; 若 c=r ,则删除 avalue c 中的 r; 令 avalue a = r ; rvalue r = a ; 7 (4) 若 b 的值在基本块内不再引用,且 avalue b= ri 则产生目标指令 : mov ri,b; 删除 avalue b 中的 ri; 删除 rvalue ri 中的 b; /释放寄存器 ri. (5) 若 c 的值在基本块内不再引用,且 avalue c= ri 则产生目标指令 : mov ri,c; 删除 avalue c 中的 ri; 删除 rvalue ri 中的 c; /释放寄存器 ri. (6) 返回 8 5 getreg( a:= b op c) 算法 (1) 若 b 的值在 r 中, 且 rvaluer 只含 b,且 ( a=b 或 b 的值在基本块内不再引用并且 b 的值已存 入内存中) 则 return (r); (2) 否则,若有尚未分配的 r 则 return(r); (3) 否则,从已分配的寄存器中选择
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国无线物联网设备项目经营分析报告
- 2026年中国网络视频监控系统项目经营分析报告
- 2026年中国抗菌间歇导管项目经营分析报告
- 景区年度财务运营状况分析报告经理视角
- 2025中国自动驾驶汽车传感器市场格局与技术路线报告
- 2025中国脑机接口行业市场格局及技术进展与投资价值评估报告
- 2026年中国香榧项目经营分析报告
- 2025中国美妆零售终端数字化改造趋势研究
- 2025中国美妆行业数字化转型与智能技术应用报告
- 2025中国美妆大数据分析与精准营销应用报告
- 法理学马工程教材
- 2023学年完整公开课版《Ourdreams》教学
- 个人借条电子版模板
- 销售人员绩效考核办法
- 执业兽医兽医公共卫生学课件
- 植入性Holter的临床应用课件
- 嘘 - 副本【经典绘本】
- 小古文《李广射虎》(四年级晨诵)
- 东北大学高等数学上期末考试试卷
- 新昌人民医院固定资产及设备全资源管理系统项目采购要素
- 练习打字的文章(精选21篇)
评论
0/150
提交评论