Hackpad
e.g. LDR R5, [R1]
R1 : 位置, 會從此位置 載入 32-bit 值, 存入 R5
e.g. LDR R6, [R1, 4]
e.g. STR R3, [R1]
LDR / STR 資訊流相反, LDR : 後面到前面, STR : 前面到後面
Literal Addressing
e.g. .equ JENNY, 8675309
LDR R0, =JENNY
他還是會載入值 8675309, 但是是在memory (假設位置是這邊 PC 值往後加 24)
造一個 ".word 8675309"
整行變為 LDR R0, [PC,24]
- pre-indexed addressing 是指地址經過運算不寫回基址暫存器
- post-indexed addressing 回寫到基址暫存器
- 比如 , 兩個所用的實際位置值都是 r1+0x10
- STR r0, [r1], #0x10 ; 0x10 回寫入 r1,此句之后,r1=0x10
LDMxy / SDMxy
x : I Increase 遞增 ; D Decrease 遞減
y : A After 訪問後動作; B Before 訪問前動作
LDMIA R0, {R1, R2, R3, R4}
R1 = [R0]
R2= [R0+4]
R3 = [R0+8]
R4 = [R0+C]
留言
張貼留言