Инструкция 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
...