第10章 目标代码生成.ppt_第1页
第10章 目标代码生成.ppt_第2页
第10章 目标代码生成.ppt_第3页
第10章 目标代码生成.ppt_第4页
第10章 目标代码生成.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章目标代码生成 目标代码 单寄存器 临时变量的存储空间分配寄存器的分配和释放 10 1目标代码 虚拟目标代码 虚拟机上的目标程序 在本地机器上具备虚拟机的解释器 实际目标代码 实际机器上的指令序列绝对地址机器代码 可重定位的机器代码 汇编代码 三种硬件地址模式 指令格式 Op CR 立即 寄存器 Opd R1 R2 存储器 寄存器 OpR1R2 寄存器 寄存器 几个常见指令的含义 LoadSourceR从Source读出送入ROpSourceRSourceopR结果送入RStoreTargetRR的内容送入Target 目标代码的生成 单寄存器 形如 Op A B T LoadAR OpBR形如 ASSIG A B LoadAR StoreRB例 Z X a b Y a b 标号和Jump的代码 标号到代码地址的对应表 flag L Addr 形如 LabelL 当对应表中没有L项时 填写表项 1 L Pc Pc表示下一条目标代码的地址 当有L项 0 L P 时 从P 顺着链回填地址Pc形如 JumpL 对应表中没有L项时构造链头P Jump nil 填写表项 0 L P 当有表项 0 L P 时 拉链P JumpP 修改表项为 0 L P 当有表项 1 L P 时 取出L的地址P生成代码 过程 函数调用的代码 主要工作 过函调用时 申请新AR空间参数传递转向过程体过函入口 填写AR的相关内容 过函返回时 释放AR区恢复信息返回值参数传递的代码 值参 VALACT a off 1 Loada sp RStoreoff top R VALACT A off 1 Load A sp RStoreoff top R 变参 VARACT a off 1 LoadAa sp RStoreoff top R VARACT A off 1 LoadA sp RStoreoff top R过函形参 PROCACT p off 1 LoadEnter p RStoreoff top R PROCACT P off 1 LoadP sp RStoreoff top R 过函调用Call 传参 Call g True JumpEnter g Call G False Jump G sp 入口 Entry Label size Level 填写AR信息 LoadtopspADDtopsize出口 ENDPROC 恢复调用前的信息和寄存器内容 保存返回值 Loadsptop LoadDyL sp sp JumpRe A top 10 2临时变量 特点 寿命短 一次定义一次使用存储空间 尽可能采用共享办法随用随分配的动态分配 调用一个过程时 分配一个新的AR空间 不包括临时变量部分 每当要保存一个临时变量时 动态分配到栈区的可用单元中按共享法静态分配 先计算出临时变量的空间 在过程调用时和源变量一起申请空间 即调用时将临时变量安排在AR中 临时变量的静态分配 定值点 如果i中间代码给临时变量T定值 则称i为临时变量T的定值点 引用点 如果j中间代码使用T 则称j为T的引用点 活动区间 如果i是T的定值点 j是T的最后引用点 则称 i j 是T的活动区间 活动区间 i j 和 m n 不严格相交 如果m j或i n 空间分配 如果两个临时变量的活动区间不严格相交 则可以共享单元 T1 T2 T3 T4 T5 Offset m Offset m 1 Offset m 1 Offset m 1 Offset m 例 10 3寄存器 寄存器的分类 可分配寄存器保留寄存器零用寄存器寄存器的使用准则 寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论