lc3 LDR指令和存储的值

时间:2014-09-16 12:10:07

标签: assembly load instructions lc3

我无法弄清楚为什么After instruction “LDR R3, R0, 2” is executed, the value stored in R3 is x370C.在这个指令中2代表什么?它看起来不像是一个临时价值。我知道R0此时包含x370C。有人可以帮忙吗?非常感谢!

.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 :(得分:3)

第二个参数是要加载的基址的偏移量。

我开始拍摄一些照片在这里发布并做出了很好的解释,但我发现了一个有趣的讲座视频,它比文字解释得更好,并且可以节省很多时间。

LC3 Instructions - LD, LDR, LDI, LEA

该视频解释了LC3的加载指令之间的差异,突出了它们之间的差异。

在你的例子中:

您有数据:

A .FILL X1234
B .FILL X370B
C .FILL X370C

运行代码:

LEA R0, A      -- R0 has the address of A
LDI R2, C      -- R2 has value of which address C has
LDR R3, R0, 2  -- R3 has the value of C 
               -- because R0 has the address of A + 2 positions = C