例如,使用两个寄存器(R1和R2),图1.8的中间代码可生成如图1.9的某汇编代码。
图 1.9目标代码 |
(1)
(2)
(3)
(4)
(5) |
MOVF
MOLF
MOVF
ADDF
MOV |
id3
#10.0
id2
R1
R1 |
R2
R2
R1
R2
id1 |
|
第一条指令将id3的内容送至寄存器R2,第二条指令将其与实常数10.0相乘,这里用#表明10.0处理为常数,第三条指令将id2移至寄存器R1,第四条指令加上前面计算出的R2中的值,第五条指令将寄存器R1的值移到id1的地址中。这些代码实现了本节开头给的源程序片断的赋值。
|