考虑表达式(a-1)*((((b + c)/ 3))+ d))。令X为加载/存储架构的最佳代码生成(无任何寄存器溢出)算法所需的最少寄存器数,其中
(i)只有加载和存储指令才能具有内存操作数,并且
(ii)算术指令只能有寄存器或立即数操作数
X的值为________。
注意:此问题显示为数值答案类型。
(A) 2
(B) 1
(C) 4
(D) 3答案: (A)
说明:使用装入/存储体系结构的汇编代码可以编写如下:
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提供。
这个问题的测验