第八章代码生成本章内容一个简单的代码生成算法涉及存储管理,指令选择,, 目标机器指令系统的性质决定了指令选择的难易程度,指令系统的统一性和完备性是重要的因素 ,指令的选择是直截了当的。三地址语句x:=y+z(x,y和z都是静态分配) MOV y, R0 /*把y装入寄存器R0*/ ADD z, R0 /*z加到R0上*/ MOV R0, x /*把R0存入x中*/逐个语句地产生代码, a:=b+c d:=a+e的代码如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0ADD e, R0 MOV R0, a:=b+c d:=a+e的代码如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0 --多余的指令ADD e, R0 MOV R0, a:=b+c d:=a+e的代码如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0 --多余的指令ADD e, R0 --若a不再使用,第三条也MOV R0, d -- 运算对象处于寄存器中的指令通常比运算对象处于内存的指令要短一些,执行也快一些寄存器分配 选择驻留在寄存器中的一组变量寄存器指派 ,有n个通用寄存器R0,R1,…,Rn-1。二地址指令op 源,目的 MOV {源传到目的} ADD {源加到目的} SUB {目的减去源}
第八章代码生成 来自淘豆网www.taodocs.com转载请标明出处.