1. ホーム
  2. assembly

[解決済み】lc3 LDR命令と格納される値について

2022-02-09 04:44:49

質問内容

なぜかわからない 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

解決方法は?

第2パラメータは、ロードされるベース・アドレスのオフセットです。

私はここに掲載するために写真を撮り始め、良い説明をしようとしましたが、興味深い講義ビデオを見つけました。

LC3インストラクション - 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