在简化的计算机中,说明是:
该计算机只有两个寄存器,OP是ADD或SUB。考虑以下基本块:
假定所有操作数最初都在内存中。计算的最终值应在内存中。在为该基本块生成的代码中,MOV指令的最小数量是多少?
(A) 2
(B) 3
(C) 5
(D) 6答案: (B)
解释:
有关t2和t3的说明
1. MOV c,t2
2. OP d,t2(OP = ADD)
3. OP e,t2(OP = SUB)
有关t1和t4的说明
4. MOV a,t1
5. OP b,t1(OP = ADD)
6. OP t1,t2(OP = SUB)
7. MOV t2,a(AS END值必须在MEMORY中)
如果问题不是要在内存中求出最终值而是要在寄存器中,那么步骤6应该就足够了。最后一步需要另一个MOV,因此总计为3。
这个问题的测验