新闻中心

EEPW首页>嵌入式系统>设计应用> ARM指令寻址方式之: 内存访问指令寻址

ARM指令寻址方式之: 内存访问指令寻址

作者: 时间:2013-09-13 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257083.htm

4.2 内存访问

根据内存访问指令的分类,内存访问指令的寻址方式可以分为以下几种。

① 字及无符号字节的Load/Store指令的寻址方式。

② 杂类Load/Store指令的寻址方式。

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

④ 协处理器Load/Store指令的寻址方式。

4.2.1 字及无符号字节的Load/Store指令的寻址方式

字及无符号字节的Load/Store指令如下:

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

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

表4.2 字及无符合字节的Load/Store指令的寻址方式

格 式

模 式

1

[Rn,#±offset_12>]

立即数偏移寻址

(Immediate offset)

2

[Rn,±Rm]

寄存器偏移寻址

(Register offset)

3

[Rn,Rm,shift># offset_12>]

带移位的寄存器偏移寻址

(Scaled register offset)

4

[Rn,#± offset_12>]!

立即数前索引寻址

(Immediate pre-indexed)

5

[Rn,±Rm]!

寄存器前索引寻址

(Register post-indexed)

6

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

带移位的寄存器前索引寻址

(Scaled register pre-indexed)

7

[Rn],#± offset_12>

立即数后索引寻址

(Immediate post-indeded)

8

[Rn],±Rm>

寄存器后索引寻址

(Register post-indexed)

9

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

带移位的寄存器后索引寻址

(Scaled register post-indexed)

字及无符号字节的Load/Store指令的解码格式如图4.13所示。

图4.13 字及无符号字节的Load/Store指令的解码格式

编码格式中各位的含义如表4.3所示。

表4.3 字和无符号半字Load/Store指令编码格式各位含义

位 标 识

取 值

含 义

P

P=0

使用后索引寻址

P=1

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

U

U=0

访问的地址=基址寄存器的值-偏移量(offset)

U=1

访问的地址=基址寄存器的值+偏移量(offset)

B

B=0

字访问Load/Store

B=1

无符号字节访问Load/Store

W

W=0

如果P=0,该指令为LDR、LDRB、STR或STRB指令,且内存访问指令为正常访问指令;如果P=1,指令执行不更新基地址

W=1

如果P=0,该指令为LDRBT、LDRT、STRBT或STRT,且指令为非特权(用户模式)访问指令;如果P=1,计算内存地址并更新基地址

L

L=0

Store指令

L=1

Load指令


上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 下一页

评论


相关推荐

技术专区

关闭