考虑表达式 (a-1) * ((( b + c ) / 3 )) + d))。设 X 是加载/存储架构的最佳代码生成(无任何寄存器溢出)算法所需的最小寄存器数,其中
(i) 只有加载和存储指令可以有内存操作数和
(ii) 算术指令只能有寄存器或立即数操作数
X 的值是________。
注意:此问题显示为数字答案类型。
(一) 2
(乙) 1
(三) 4
(四) 3答案:(一)
说明:使用加载/存储架构的汇编代码可以写成如下:
Load R1, b
Load R2, c
ADD R1, R2
Div R1, 3
Load R2, d
Add R1, R2
Load R2, a
Sub R2, 1
Mul R2, R1
因此至少需要 2 个寄存器。
该解释由Sonal Kukreja 提供。
这个问题的测验