劉帥嵌入式系統-雜類Load/Store指令尋址方式五

劉帥嵌入式系統-雜類Load/Store指令尋址方式五


[], #+/-<offset>

指令編碼格式:


劉帥嵌入式系統-雜類Load/Store指令尋址方式五



內存地址計算方式:

指令使用基址寄存器Rn的值作為實際內存訪問的地址。

當指令執行的條件滿足時,將基址寄存器的值加上/減去偏移量offset_8,生成新的地址。

當U = 1時,address = Rn + offset_8

當U = 0時,address = Rn - offset_8

最後將新的地址address寫入基址寄存器Rn中。這種方式為事後訪問方式。

指令中尋址方式的語法格式

[], #+/-<offset>

-- offset_8為地址偏移量,被編碼成高4位immedH和低4位immedL。

偽代碼如下:

offset_8 = (immedH << 4) OR immedL

if ConditionPassed(cond) then

if U==1 then

Rn= Rn + offset_8

else /*U == 0*/

Rn = Rn - offset_8

使用說明:

當R15用做基址寄存器Rn或Rm時,會產生不可預知的結果。

標為為L、S的用法與前面的指令相同。

示例:

STRH R0, [R1], #8 ;將R0中的低16位數據保存到內存單元(R1)中,同時,指令執行後 R1 = R1 + 8


分享到:


相關文章: