BR在LC-3中检查哪个寄存器

Which register does BR check in LC-3

标题几乎解释了它。我认为 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 行颠倒过来。如果我错了,请纠正我。

BR 检查条件代码寄存器。

条件代码寄存器在任何直接写入寄存器的指令上被修改。

在 LC-3 中,这些指令将是 ADD、AND、NOT、LEA、LD、LDR 和 LDI

是的,第 5 行和第 6 行应该互换。