Assembly LC3 LEA指令和存储的值
我被这个问题弄糊涂了:在执行指令“LEA R0,A”之后,寄存器0中存储的值是多少?为什么答案是x370C?我想它应该将A的地址加载到R0中?如果是这样,我们怎么知道地址?有人能帮忙吗?非常感谢Assembly LC3 LEA指令和存储的值,assembly,load,cpu-registers,lc3,Assembly,Load,Cpu Registers,Lc3,我被这个问题弄糊涂了:在执行指令“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
.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
代码的来源是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
...
没问题-我已回滚您的编辑,以使此问题和答案有用。如果您仍有问题,请随时开始新问题。您能看一下吗?它直接基于此问题