新聞中心

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

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

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

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

6.[Rn],±Rm>

(1)編碼格式

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

圖4.29 雜項內(nèi)存訪問指令——后索引寄存器偏移尋址編碼格式

指令訪問地址為實際的基址寄存器的值。當(dāng)指令的執(zhí)行條件滿足時,將基址寄存器的值加/減索引寄存器Rm的值回寫到Rn基址寄存器。

(2)

LDR|STR{cond>}H|SH|SB|D Rd>,[Rn],±Rm>

其中:

· Rn為基址寄存器,該寄存器包含內(nèi)存訪問的基地址;

· Rm>為偏移地址寄存器,包含內(nèi)存訪問地址偏移量。

(3)操作偽代碼

Address = Rn

If conditionPassed{cond} then

If U = = 1 then

Rn = Rn + Rm

Else

Rn = Rn – Rm

(4)說明

① 程序寄存器r15被指定為Rm或Rn,指令的執(zhí)行結(jié)果不可預(yù)知。

② 如果Rm和Rn指定為同一寄存器,指令的執(zhí)行結(jié)果不可預(yù)知。

4.2.3 批量Load/Store方式

批量Load/Store指令將一片連續(xù)內(nèi)存單元的數(shù)據(jù)加載到通用寄存器組中或?qū)⒁唤M通用寄存器的數(shù)據(jù)存儲到內(nèi)存單元中。

批量Load/Store指令的尋址模式產(chǎn)生一個內(nèi)存單元的地址范圍,指令寄存器和內(nèi)存單元的對應(yīng)關(guān)系滿足這樣的規(guī)則,即編號低的寄存器對應(yīng)于內(nèi)存中低地址單元,編號高的寄存器對應(yīng)于內(nèi)存中的高地址單元。

指令的如下。

LDM|STM{cond>}addressing_mode> Rn>{!},registers>^>

指令的尋址方式如表4.6所示。

表4.6 批量Load/Store指令的尋址方式

格 式

模 式

1

IA(Increment After)

后遞增方式

2

IB(Increment Before)

先遞增方式

3

DA(Decrement After)

后遞減方式

4

DB(Decrement Before)

先遞減方式

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

圖4.30 批量Load/Store指令編碼格式

編碼格式中各標(biāo)志位的含義如表4.7所示。

表4.7 批量Load/Store指令編碼格式各標(biāo)志位含義

位標(biāo)識

取 值

含 義

P

P=0

Rn包含的地址,是所要訪問的內(nèi)存塊的高地址(U=0)還是低地址(U=1)

P=1

標(biāo)識Rn所指向的內(nèi)存單元是否被訪問

U

U=0

Rn所指內(nèi)存單元為所要訪問的內(nèi)存單元塊的高地址

U=1

Rn所指內(nèi)存單元為所要訪問的內(nèi)存單元塊的低地址

S

S=0

當(dāng)程序計數(shù)器PC作為要加載的寄存器之一時,S標(biāo)識是否將spsr內(nèi)容拷貝到cpsr;對于不加載PC的load指令和所有store指令,S標(biāo)識特權(quán)模式下,使用用戶模式寄存器組代替當(dāng)前模式下寄存器組

S=1

W

W=0

數(shù)據(jù)傳送完畢,更新地址寄存器內(nèi)容

W=1

L

L=0

Store指令

L=1

Load指令



評論


相關(guān)推薦

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

關(guān)閉