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

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


[], +/-

指令编码格式


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


内存地址计算方法

指令使用基址寄存器Rn的值作为实际内存访问的地址。

当指令执行的条件满足时,将基址寄存器的值加上/减去索引寄存器Rm的值,生成新的地址。

当U = 1时,address = Rn + Rm

当U = 0时,address = Rn - Rm

最后将新的地址address写入基址寄存器Rn中。这种方式为事后访问方式。

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

[], +/-

伪代码如下:

address = Rn

if ConditionPassed(cond) then

if U==1 then

Rn= Rn + Rm

else /*U == 0*/

Rn = Rn - Rm

使用说明:

当R15用做基址寄存器Rn或Rm时,会产生不可预知的结果。

当Rn和Rm是同一个寄存器时,会产生不可预期的结果。

示例:

STRH R0, [R1],R2 ;将R0中的低16位数据保存到内存单元(R1)中,同时,指令执行后 R1 = R1 + R2


分享到:


相關文章: