编译原理 第十一章目标代码生成 2005/6/12
编译原理 第十一章 目标代码生成 2005/6/12
编泽原理 目标代码的形式 墨机器语言代码 所有地址已定位,可立即执行 墨待装配的机器语言模块 汇编语言代码 代码生成考虑(执行速度): 如何使生成的代码较短 慧如何利用计算机的寄存器,减少目标代码中访问存储单元的 次数 第2页
编译原理 第2页 目标代码的形式 机器语言代码 所有地址已定位,可立即执行 待装配的机器语言模块 汇编语言代码 代码生成考虑(执行速度): 如何使生成的代码较短 如何利用计算机的寄存器,减少目标代码中访问存储单元的 次数
编译原理 11.1 基本问题 代码生成器的输入 目标程序 量指令选择寄存器分配 计算顺序选择 第3页
编译原理 第3页 11.1 基本问题 代码生成器的输入 目标程序 指令选择寄存器分配 计算顺序选择
编泽原理 11.2目标机器模型 售假设目标计算机有下列指令形式 类型 指令形式 意义(设op是二目运算符) 直接地址型 op Ri,M (Ri)op (M)=Ri 寄存器型 op Ri.Ri 变址型 (R)op(R)→R 间接型 op R;.c(Ri) (R)op(R)+c)→R op Ri,*M (Ri)op ((M))=Ri op Ri,*Ri (R)op(R)→R; op Ri,*c(Rj) (R)op(《(R)+c)=R 第4负
编译原理 第4页 11.2 目标机器模型 假设目标计算机有下列指令形式
编译原理 指令的意义: 指龄 意舣 指龄 意舣 LDRiB 把弹元的内溶取到寄存器R,阳)=R 以 如CT=0 转弹元 ST RiB 把寄存器鄂的大容存到弹元,印(R)=8。 以 如CT=减CT1转弹元 J X 无条件转向X弹元 以 如CT1 转弹元 CMP AB 把A弹元和弹元的值进行比较并根据比较 找 如CT判 转弹元 情机把机器内部特寄弃器CT置成相应态以 如CT=2 转弹玩 :CT占两个二进位,根据A盼别置CT知以 如CT=2减CT:1 转禅元 或域2 第5页
编译原理 第5页 指令的意义: