新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > ARM指令尋址方式之: 內(nèi)存訪問指令尋址

ARM指令尋址方式之: 內(nèi)存訪問指令尋址

作者: 時間:2013-09-13 來源:網(wǎng)絡 收藏

本文引用地址:http://m.butianyuan.cn/article/257083.htm

(2)

opcode>{cond>}{L} coproc>,CRd>,[Rn>,#±offset_8>*4]

其中:

· Rn>為基址寄存器,包含尋址操作的基地址;

· offset_8>為8位立即數(shù),該值的4倍為地址偏移量。

(3)操作偽代碼

If ConditionPassed(cond) then

If U = = 1 then

Address = Rn + offset_8 * 4

Else /*U = = 0*/

Address = Rn – offset_8 * 4

Start_address = address

While (NotFinished(coprocessor[cp_num]))

Address = address +4

End_address = address

(4)說明

如果基址寄存器指定為程序計數(shù)器r15,則基地址為當前執(zhí)行指令地址加8。

2.[Rn>,#±offset_8>*4]!

(1)編碼格式

指令的編碼格式如圖4.37所示。

圖4.37 協(xié)處理器Load/Store指令——前索引立即數(shù)尋址

該尋址方式指定一片連續(xù)的內(nèi)存地址空間。訪問內(nèi)存單元的第一個地址first_addressing>等于基址寄存器Rn>的值加上/減去指令中寄存器值的4倍。如果指令的條件域滿足,產(chǎn)生的first_addressing>回寫到基址寄存器Rn中。接下來的內(nèi)存訪問地址是前一個訪問地址加4。當協(xié)處理器發(fā)出傳輸中止信號時,數(shù)據(jù)傳送結(jié)束。

這種尋址方式的數(shù)據(jù)傳輸數(shù)目由協(xié)處理器決定。

注意

這種尋址方式最多允許傳輸16的字。

(2)

opcode>{cond>}{L} coproc>,CRd>,[Rn>,#±offset_8>*4]!

其中:

· Rn>為基址寄存器,包含尋址操作的基地址;

· offset_8>為8位立即數(shù),該值的4倍為地址偏移量;

· !設(shè)置指令編碼中的W位,更新指令基地址。

(3)操作偽代碼

If ConditionPassed(cond) then

If U = = 1 then

Rn = Rn + offset_8 * 4

Else /*U = = 0*/

Rn = Rn – offset_8 * 4

Start_address = Rn

Address = start_address

While (NotFinished(coprocessor[cp_num]))

Address = address +4

End_address = address

(4)說明

如果基址寄存器指定為程序計數(shù)器r15,則指令的執(zhí)行結(jié)果不可預知。

3.[Rn>],#±Offset_8>*4

(1)編碼格式

指令的編碼格式如圖4.38所示。

圖4.38 協(xié)處理器Load/Store指令——后索引立即數(shù)尋址

該尋址方式指定一片連續(xù)的內(nèi)存地址空間。訪問內(nèi)存單元的第一個地址first_addressing>等于基址寄存器Rn>的值。接下來的內(nèi)存訪問地址是前一個訪問地址加4。當協(xié)處理器發(fā)出傳輸中止信號時,數(shù)據(jù)傳送結(jié)束。如果指令的條件域滿足,Rn基址寄存器的值更新為Rn的值加上/減去8位立即數(shù)的4倍。

這種尋址方式的數(shù)據(jù)傳輸數(shù)目由協(xié)處理器決定。

注意

這種尋址方式最多允許傳輸16的字。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉