刘帅嵌入式系统-杂类Load/Store指令寻址方式二

[<Rn>,+/-<Rm>]

指令编码格式

内存地址计算方法:

内存地址address为基址寄存器的值加上/减去索引寄存器Rm的值。

当U = 1时,address = Rn + Rm

当U = 0时,address = Rn - Rm

指令中寻址方式的语法格式

[<Rn>, +/-<Rm>]

伪代码如下:

if U==1 then

    address = Rn + Rm

else /*U == 0*/

    address = Rn - Rm

使用说明:

该寻址方式适合访问字节数组中的数据成员。

标志位L、S的用法与[<Rn>,#+/-<offset_8>]指令相同。

当R15用作基址寄存器Rn时,内存基地址为当前指令地址加8字节偏移量。当R15用作索引寄存器Rm时,会产生不可预期的结果。

示例:

STRH R0,[R1,R2] ;将R0中的低16位数据保存到内存单元(R1+R2)中。

猜你喜欢

转载自blog.csdn.net/shuai532209720/article/details/88959454
今日推荐