标题几乎解释了它。我认为BR会检查最后修改过的寄存器,但我只是想确认一下。例如,这里有一些代码可以将R3中的4位向左移位。
1. .ORIG x3000
2. AND R2, R2, #0
3. ADD R2, R2, #4
4. LOOP BRz DONE
5. ADD R2, R2, #-1
6. ADD R3, R3, R3
7. BR LOOP
8. DONE HALT
9. .END
这会产生无限循环,我认为正确的代码应该反转第5行和第6行。如果我错了,请纠正我。
答案 0 :(得分:0)
BR检查条件代码寄存器。
条件代码寄存器在任何直接写入寄存器的指令上被修改。
在LC-3中,这些指令是ADD,AND,NOT,LEA,LD,LDR和LDI
是的,应该交换第5和第6行。