lc3 LDR-instructie en de opgeslagen waarde

Ik begrijp niet waarom After instruction “LDR R3, R0, 2” is executed, the value stored in R3 is x370C.waar staat 2 voor in deze instructie? Het ziet er niet uit als een onmiddellijke waarde. Ik begrijp dat R0 op dit moment x370C bevat. Kan iemand alsjeblieft helpen? Hartelijk dank!

.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

Antwoord 1, autoriteit 100%

De tweede parameter is de offset van het basisadres dat wordt geladen.

Ik begon wat foto’s te maken om hier te plaatsen en een goede uitleg te geven, maar ik vond een interessante collegevideo die veel beter uitlegt dan woorden en veel tijd zal besparen.

LC3-instructies – LD, LDR, LDI, LEA

De video legt de verschillen uit tussen de laadinstructies voor de LC3 en benadrukt de verschillen daartussen.

In jouw voorbeeld:

U heeft uw gegevens:

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

Uw code uitvoeren:

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

Other episodes