数据传送指令之:单寄存器的Load/Store指令

嵌入式系统 时间:2013-09-13来源:网络

5.3.6 有符号的字节/半字数据传送指令(LDRBT/STRBT)

1.LDRSB指令

(1)指令编码格式

LDRSB指令根据addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器Rd>。

注意

LDRSB与LDRB指令的不同之处在于它将寄存器的高24位设置成该字节数据的符号位的值(即将该8位字节数据进行符号位扩展,生成32位字数据)。

指令的编码格式如图5.13所示。

图5.13 LDRSB指令编码格式

(2)指令的语法格式

LDR{cond>}SB Rd>,addr_mode>

① cond>

为指令编码中的条件域。它指示LDRSB指令在什么条件下执行。当cond>忽略时,指令为无条件执行(cond=AL(Alway))。

② Rd>

确定使用哪个通用寄存器作为目标寄存器。

③ addr_mode>

它确定了指令编码中的I、P、U、W、Rn和addr_mode>位。所有的寻址模式中,都会确定一个基址寄存器Rn。

(3)指令操作的伪代码

If ConditionPassed{cond} then

data=Memory[address,1]

Rd=SignExtend{data}

2.LDRSH指令

(1)指令编码格式

LDRSH指令根据addr_mode>所确定的地址模式将一个16位半字读取到指令中的目标寄存器Rd>。

注意

LDRSH与LDRH指令的不同之处在于它将寄存器的高16位设置成该字节数据的符号位的值(即将该16位字节数据进行符号位扩展,生成32位字数据)。

指令的编码格式如图5.14所示。

图5.14 LDRSH指令编码格式

(2)指令的语法格式

LDR{cond>}SH Rd>,addr_mode>

① cond>

为指令编码中的条件域。它指示LDRSH指令在什么条件下执行。当cond>忽略时,指令为无条件执行(cond=AL(Alway))。

② Rd>

确定使用哪个通用寄存器作为目标寄存器。

③ addr_mode>

它确定了指令编码中的I、P、U、W、Rn和addr_mode>位。所有的寻址模式中,都会确定一个基址寄存器Rn。

(3)指令操作的伪代码

If ConditionPassed{cond} then

if address[0]==0

data=Memory[address,2]

else /*address[0] ==1*/

data=UNPREDICTABLE

Rd=SignExtend{data}

1 2 3 4 5 6 7 8

关键词: 数据传送指令 单寄存器 Load/Store指令 微处理器 ARM

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版