新聞中心

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

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

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

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

4.2 內(nèi)存訪問(wèn)

根據(jù)內(nèi)存訪問(wèn)指令的分類,內(nèi)存訪問(wèn)指令的尋址方式可以分為以下幾種。

① 字及無(wú)符號(hào)字節(jié)的Load/Store指令的尋址方式。

② 雜類Load/Store指令的尋址方式。

③ 批量Load/Store指令的尋址方式。

④ 協(xié)處理器Load/Store指令的尋址方式。

4.2.1 字及無(wú)符號(hào)字節(jié)的Load/Store指令的尋址方式

字及無(wú)符號(hào)字節(jié)的Load/Store指令如下:

LDR|STR{cond>}{B}{T} Rd>,addressing_mode>

其中addressing_mode>共有9種尋址方式,如表4.2所示。

表4.2 字及無(wú)符合字節(jié)的Load/Store指令的尋址方式

格 式

模 式

1

[Rn,#±offset_12>]

立即數(shù)偏移尋址

(Immediate offset)

2

[Rn,±Rm]

寄存器偏移尋址

(Register offset)

3

[Rn,Rm,shift># offset_12>]

帶移位的寄存器偏移尋址

(Scaled register offset)

4

[Rn,#± offset_12>]!

立即數(shù)前索引尋址

(Immediate pre-indexed)

5

[Rn,±Rm]!

寄存器前索引尋址

(Register post-indexed)

6

[Rn,Rm,shift># offset_12>]!

帶移位的寄存器前索引尋址

(Scaled register pre-indexed)

7

[Rn],#± offset_12>

立即數(shù)后索引尋址

(Immediate post-indeded)

8

[Rn],±Rm>

寄存器后索引尋址

(Register post-indexed)

9

[Rn],±Rm>,shift># offset_12>

帶移位的寄存器后索引尋址

(Scaled register post-indexed)

字及無(wú)符號(hào)字節(jié)的Load/Store指令的解碼格式如圖4.13所示。

圖4.13 字及無(wú)符號(hào)字節(jié)的Load/Store指令的解碼格式

編碼格式中各位的含義如表4.3所示。

表4.3 字和無(wú)符號(hào)半字Load/Store指令編碼格式各位含義

位 標(biāo) 識(shí)

取 值

含 義

P

P=0

使用后索引尋址

P=1

使用偏移地址或前索引尋址(由W位決定)

U

U=0

訪問(wèn)的地址=基址寄存器的值-偏移量(offset)

U=1

訪問(wèn)的地址=基址寄存器的值+偏移量(offset)

B

B=0

字訪問(wèn)Load/Store

B=1

無(wú)符號(hào)字節(jié)訪問(wèn)Load/Store

W

W=0

如果P=0,該指令為L(zhǎng)DR、LDRB、STR或STRB指令,且內(nèi)存訪問(wèn)指令為正常訪問(wèn)指令;如果P=1,指令執(zhí)行不更新基地址

W=1

如果P=0,該指令為L(zhǎng)DRBT、LDRT、STRBT或STRT,且指令為非特權(quán)(用戶模式)訪問(wèn)指令;如果P=1,計(jì)算內(nèi)存地址并更新基地址

L

L=0

Store指令

L=1

Load指令


上一頁(yè) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉