我对这个问题感到困惑:执行指令“LEA R0,A"
后,寄存器0中存储的值是多少?怎么回答x370C?我估计它应该将A的地址加载到R0中?如果是这样,我们如何知道地址?有人可以帮忙吗?非常感谢!
.ORIG X3700
LEA R0, A
LDI R2, C LDR R3, R0, 2
AND R1, R1, #0
IN
ST R0, D
JSR F
HALT
F LD R1, B
ADD R1, R1, #1
BRp F
RET
A .FILL X1234
B .FILL X370B
C .FILL X370C
D .BLKW 2
E .STRINGZ "ABCD"
G .FILL X1234
.END
答案 0 :(得分:4)
代码的来源为x3700
,您有12条说明,因此A
的地址为x3700 + x0C = x370C
。如您所知,LEA R0,A
会将A
的地址加载到R0
,因此在执行完第一条指令后,R0
将包含x370C
。
.ORIG X3700
3700 LEA R0, A
3701 LDI R2, C
3702 LDR R3, R0, 2
...
370b RET
370c A .FILL X1234
...