考虑在具有加载存储架构的机器上评估以下表达式树,其中内存只能通过加载和存储指令访问。变量 a、b、c、d 和 e 最初存储在内存中。仅当操作数在寄存器中时,机器才能评估此表达式树中使用的二元运算符。这些指令只在寄存器中产生结果。如果没有中间结果可以存储在内存中,评估这个表达式所需的最少寄存器数量是多少?
(一) 2
(乙) 9
(三) 5
(四) 3答案: (D)
解释:
R1←c,R2←d,R2←R1+R2,R1←e,R2←R1-R2
现在要计算表达式的其余部分,我们必须将 a 和 b 加载到寄存器中,但我们需要
R2的内容稍后。
所以我们必须使用另一个寄存器。
R1←a,R3←b,R1←R1-R3,R1←R1+R2
来源:http://clweb.csa.iisc.ernet.in/rahulsharma/gate2011key.html
这个问题的测验