11目标代码生成.pptVIP

  • 13
  • 0
  • 约4.54千字
  • 约 24页
  • 2017-02-16 发布于湖北
  • 举报
第十一章 目标代码生成 目标代码生成 代码生成器的输入包括中间代码和符号表中的信息 目标代码一般有以下三种形式: 能独立执行的机器语言代码,所有地址均已定位(代真) 待装配的机器语言模块。当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码 汇编语言代码,尚须经过汇编程序汇编,转换成可执行的机器代码 代码生成器着重考虑两个问题 一是如何使生成的目标代码较短 二是如何充分利用计算机的寄存器,减少目标代码中访问存储单元的次数 这两个问题直接影响代码的执行速度 1 基本问题 代码生成器的输入:中间代码和符号表信息 目标程序、指令选择、寄存器分配、计算顺序选择 2 目标机器模型 假定一个计算机有N个通用寄存器R0,R1…,Rn-1,Op表示运算符,M表示内存单元,c表示常数,*表示间接寻址,变量名表示变量所在单元 指令形式有以下四种: 如果op是一目运算符,则op Ri, M的意义为: op(M)=Ri,其余类型可类推 指令的意义说明: 3 一个简单的代码生成器 简单的代码生成器(基本块内):输入四元式的中间代码,输出计算机的目标代码 在一个基本块范围内考虑如何充分利用寄存器的问题 3.1 寄存器分配的原则 尽可能地让该变量的值保留在寄存器中,尽可能引用变量在寄存器中的值 对于在基本块内不再被引用的变量所占用的寄存器应尽早释放,以提高寄存器的利用率 例如

文档评论(0)

1亿VIP精品文档

相关文档