ARM中的寻址方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM中的寻址方式相关的知识,希望对你有一定的参考价值。

    ARM处理器支持9中不同的寻址方式。
技术分享
技术分享
1、移位寄存器寻址:
    有5种移位方式:
LSL:逻辑左移。最低位用0补充,且移出的最后一位存放在cpsr中的C位中。
LSR:逻辑右移。最高位用0补充,且移出的最后一位存放在cpsr中的C位中。
ASR:算术右移。最高位用符号位补充,且移出的最后一位存放在cpsr中的C位中。
ROR:循环右移(不涉及到CPSR中的C位的循环右移)。且移出的最后一位存放在cpsr中的C位。
RRX:扩展循环右移(带有C位的右移)。只循环右移一位,且最高位用cpsr中的C位补充,移出的位存放在C位中。(先将C位补充到最高位,然后将移出的最低位放进C位中)
注意:如果指令中没有带上s后缀,那么移出的最后一位是不会写进到C中,也就是不会修改CPSR状态位。
 
2、寄存器间接寻址:
    51单片机中间接寻址使用的是@符号,ARM中使用的是[]符号,表示间接寻址。
 
3、变址寻址:
变址寻址分为前索引寻址和后索引寻址。
    LDR r0, [r1, #0x2]
这种属于前索引寻址,先计算r1+2的值,然后操作以此为地址的内存单元,指令完成后,r1的值是不变的。
    LDR r0, [r1], #0x2
属于后索引寻址,先操作以r1为地址的内存单元,然后再将r1更新为r1+2。
 
4、多寄存器寻址:
    只适用于STM和LDM这两条指令。这是ARM中特有的寻址方式,可以用来批量操作内存单元,从而提高效率。
    在多寄存器寻址方式中,在{}中寄存器的编号是从小到大排列的。且在存储的时候是按照编号小的寄存器对应于低地址的存储器的规则。
 
5、堆栈寻址:(和STM和LDM指令一起用)
 
    
    

以上是关于ARM中的寻址方式的主要内容,如果未能解决你的问题,请参考以下文章

ARM寻址方式,王明学learn

ARM中的寻址方式

ARM寻址方式

ARM微处理器有哪几种基本寻址方式

ARM 指令

ARM 内核 汇编指令 的 8种 寻址方式