📜  门| GATE-CS-2007 |第 54 题

📅  最后修改于: 2021-09-26 04:43:11             🧑  作者: Mango

在简化的计算机中,指令是:

GATECS2007Q54

计算机只有两个寄存器,OP要么是ADD要么是SUB。考虑以下基本块:

GATECS2007Q541

假设所有操作数最初都在内存中。计算的最终值应该在内存中。为这个基本块生成的代码中 MOV 指令的最少数量是多少?
(一) 2
(乙) 3
(三) 5
(四) 6答案:(乙)
解释:
对于 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 值必须在内存中)

如果问题没有要求内存中的最终值而是在寄存器中,则第 6 步应该已经足够了。最后一步需要另一个 MOV,因此总共需要 3 个。
这个问题的测验