Инструкция LC3 LEA и сохраненное значение

Меня смущает этот вопрос: какое значение хранится в регистре 0 после инструкции “LEA R0,A" выполняется? Почему ответ 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 ответ

Решение

Происхождение кода 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
         ...
Другие вопросы по тегам