新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Thumb指令集之: 单寄存器数据传送指令

Thumb指令集之: 单寄存器数据传送指令

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

本文引用地址:http://www.eepw.com.cn/article/257040.htm

11.5.7半字加载指令LDRH(1)

(1)编码格式

半字数据加载指令LDRH(1)的编码格式如图11.48所示。

图11.48LDRH(1)指令的编码格式

LDRH(1)半字数据加载指令用于从内存中将一个16位的半字数据读取到指令中的目标寄存器中,并将寄存器的高16位清零。常用于结构体的数据访问。域的基地址放在Rn寄存器中。

(2)指令的语法格式

LDRHRd>,[Rn>,#immed_5>*2]

①Rd>

目的寄存器。

②Rn>

指令的基址寄存器。

③immed_5>

5位立即数。该寄存器数值的2倍将与Rn>寄存器中的数值相加,形成内存访问地址。

(3)指令操作的伪代码

address=Rn+(immed_5*2)

ifaddress[0]==0

data=Memory[address,2]

else

data=UNPREDICTABLE

Rd=data

(4)对应的指令

LDRHRd>,[Rn>,#immed_5>*2]

11.5.8半字数据加载指令LDRH(2)

(1)编码格式

半字数据加载指令LDRH(2)的编码格式如图11.49所示。

LDRH(2)字节数据加载指令用于从内存中将一个16位的半字数据读取到指令中的目标寄存器中,并将寄存器的高16位清零。此种形式的LDRH(2)指令常用于数组元素的访问。

图11.49LDRH(2)指令的编码格式

(2)指令的语法格式

LDRBRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

此寄存器存放内存访问基地址。

③Rm>

此寄存器存放内存访问偏移地址。

(3)指令操作的伪代码

address=Rn+Rm

ifaddress[0]==0

data=memory[address,2]

else

data=UNPREDICTABLE

Rd=data

(4)对应的指令

LDRHRd>,[Rn>,Rm>]



评论


相关推荐

技术专区

关闭