3

私はこの質問に混乱しています: 命令“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
4

1 に答える 1

6

コードの起点は で、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
         ...
于 2014-09-16T10:47:24.630 に答える