刘帅嵌入式系统-STRH半字数据写入指令
STRH指令用于将一个16位的半字数据写入到指令中指定的内存单元。该半字数据为指令中存放源操作数的寄存器的低16位。
如果指令中的内存地址不是半字对齐的,指令会产生不可预知的结果。
指令的编码格式
指令的编码格式
LDR{< cond >}H < Rd >, < addressing_mode >
其中:
-
< cond >为指令执行的条件码。当< cond >忽略时,指令为无条件执行。
-
< Rd >为目标寄存器。
-
< addressing_mode >为指令的寻址方式。
指令操作的伪代码
if ConditionPassed(cond) then if address[0] == 0 Memory[address,2] = Rd[15:0] else /* address[0] == 1 */ data = UNPREDICTABLE Memory[address,2] = data
指令的使用
STRH指令用于将寄存器中低16位的半字数据写入到指令中指定的内存单元。
示例
STRH R0, [R1,R2];将R0中的低16位数据保存到内存单元(R1 + R2)中 STRH R0, [R1], #8;将R0中的低16位数据保存到内存单元(R1)中,R1 = R1 + 8