新闻中心

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

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

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

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

(3)指令操作的伪代码

if ConditionPassed{cond} then

Memory[address,1] = Rd[7:0]

5.3.3 半字(LDRH/STRH)

1.LDRH指令

(1)指令编码格式

LDRH指令用于从内存中将一个16位的半字读取到目标寄存器。

如果指令的内存地址不是半字节对齐的,指令的执行结果不可预知。

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

图5.7 LDRH指令的编码格式

(2)指令的语法格式

LDR{cond>}H Rd>,addr_mode>

① cond>

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

② Rd>

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

注意

如果PC作为目标寄存器,指令的执行结果不可预知。

③ 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=data

注意

在包含系统控制协处理器的芯片应用中,如果定义了地址对齐检测,当bit[0]!=0时,将发生地址对齐异常。

2.STRH指令

(1)指令编码格式

STRH指令从寄存器中取出指定的16位半字放入寄存器的低16位,并将寄存器的高位补0。

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

图5.8 STRH指令的编码格式

(2)指令的语法格式

STR{cond>}H Rd>,addr_mode>

① cond>

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

② Rd>

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

注意

如果PC作为目标寄存器,指令的执行结果不可预知。

③ addr_mode>

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

(3)指令操作的伪代码

if ConditionPassed{cond} then

if address[0]==0

data=Rd[15:0]

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

data=unpredictable

Memory[address,2]=data

存储器相关文章:存储器原理




评论


相关推荐

技术专区

关闭