我正在尝试理解此代码。我知道他应该打印“ ABCDEFG”或“ ABCDFGH”(根据2个选项),但我不明白为什么它会变大。
我的问题是,为什么在x3001中R1 = R0 + 0而不在前面给出R0并且程序正常工作。 谢谢。
.ORIG x3000
LEA R1, TESTOUT
ADD R1, R0, #0
BACK_1 LDR R0, R1, #0
BRz NEXT_1
TRAP x21
ADD R1, R1, #1
BRnzp BACK_1
NEXT_1 LEA R1, TESTOUT
BACK_2 LDR R0, R1, #0
BRz NEXT_2
JSR SUB_1
ADD R1, R1, #1
BRnzp BACK_2
NEXT_2 TRAP x25
SUB_1 ADD R0, R0, #5 / ADD R0, R0, #3
K LDI R2, DSR
BRzp K
STI R0, DDR
RET
DSR .FILL xF3FC
DDR .FILL xF3FF
TESTOUT .STRINGZ "ABC"
.END