LC3 LEA指令和存储的值

时间:2014-09-16 10:37:57

标签: 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
 B .FILL X370B
 C .FILL X370C
 D .BLKW 2
 E .STRINGZ "ABCD"
 G .FILL X1234
 .END

1 个答案:

答案 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
         ...