【发布时间】:2015-04-26 06:29:34
【问题描述】:
我正在尝试在 ASSEMBLY 代码 [代码生成] 中转换 3 个地址代码。
考虑一下,
汇编代码序列为:
如果顺序改为t2 t3 t1 t4,那么
ADD使用内存操作数 + 寄存器操作数完成,但SUB永远不会使用内存操作数完成。同样,我看到MUL也从未使用内存操作数完成。有这样的规定吗?为什么使用
MOV R0,t1?多使用一个注册并继续使用R0不是更好吗?关闭
t1,t2-t3-t1-t4是新序列,我们保存指令即我们可以使用 Reg 在下一条指令中立即保留t1的值。但是要在立即指令之后使用寄存器,我们必须将其存储在内存中?
【问题讨论】:
-
汇编代码取决于您编写代码的架构。 通常使用寄存器,因为对特定内存位置进行读/写操作更耗时.
标签: assembly compiler-construction code-generation