- 15
- 0
- 约4.56千字
- 约 15页
- 2019-05-10 发布于广东
- 举报
第十一章 目标代码生成 第十一章目标代码生成(1) 代码生成器的输入包括中间代码和符号表中的信息。 目标代码一般有以下三种形式: (1)能独立执行的机器语言代码,所有地址均以定位(代真) 。 (2)待装配的机器语言模块。当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码。 (3)汇编语言代码,尚须经过汇编程序汇编,转换成可执行的机器代码。 代码生成器着重考虑两个问题: 一是如何使生成的目标代码较短;另一个是如何充分利用计算机的寄存器,减少目标代码中访问存储单元的次数。这两个问题直接影响代码的执行速度。 基本问题:所有代码生成器都要面对何种中间代码输入, (是式逆波兰,四元式,还是三元式?等问题)何种代码做为目标程序,选择适当的代码指令,最优的寄存器分配方案,和计算顺序等基本问提. 为此本书见立了目标机器模型:并把中间代码对应的目标代码做了规定.利用待用信息,寄存器描述数组RVALUE,变量地址描述数组AVALUE等概念建立了代码生成算法. P316[例11。2]同学们应该好好研究。 P317 表11。4 各中间代码对应的目标代码应该背过。 寄存器分配:利用执行代价的概念说明如何建立更佳的寄存器分配方案。 对于循环L中某变量M,如果分配一个寄存器给它专用,那么,每执行循环一次,执行
原创力文档

文档评论(0)