
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.5 目标代码生成
目标代码生成器将中间代码转化为机器相关的目标代码,并为变量进行寄存器的分配。分配寄存器之后,将目标代码转化为机器指令。完成目标代码生成后,程序从人类能够理解运用的源代码转化为机器能够执行的机器指令。
例如,对于中间代码:

生成的目标代码为:

程序依序将变量b和c的值存储到寄存器中,首先进行乘法的计算,然后进行加法的计算,最后执行赋值语句,存储运行结果。
在第5章中,我们将讨论以下内容:
●寄存器分配算法,寄存器的合理分配和使用是目标代码生成的重要一环。
●目标代码优化策略。
●代码生成器构建过程。