新闻中心

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

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

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

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

11.5.9有符号字节数据加载指令LDRSB

(1)编码格式

有符号字节数据加载指令LDRSB的编码格式如图11.50所示。

图11.50LDRSB指令的编码格式

LDRSB指令用于从内存中将一个8位的字节数据读取到指令中的目标寄存器中,并将寄存器的高24位设置成该字节数据的符号位的值(即将该8位字节数据进行符号位扩展,生成32位字数据)。

(2)指令的语法格式

LDRSBRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

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

③Rm>

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

(3)指令操作的伪代码

address=Rn+Rm

Rd=SignExtend(Memory[address,1])

(4)对应的指令

LDRSBRd>,[Rn>,Rm>]

11.5.10有符号半字数据加载指令LDRSH

(1)编码格式

有符号字节数据加载指令LDRSH的编码格式如图11.51所示。

图11.51LDRSH指令的编码格式

LDRSH指令用于从内存中将一个16位的半字数据读取到指令中的目标寄存器中,并将寄存器的高16位设置成该半字数据的符号位的值(即将该16位半字数据进行符号位扩展,生成32位字数据)。

(2)指令的语法格式

LDRBHRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

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

③Rm>

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

(3)指令操作的伪代码

address=Rn+Rm

ifaddress[0]==0

data=memory[address,2]

else

data=UNPREDICTABLE

Rd=SignExtend[data]

(4)对应的指令

LDRSHRd>,[Rn>,Rm>]



评论


相关推荐

技术专区

关闭