刘帅嵌入式系统-协处理器Load/Store指令的寻址方式

刘帅嵌入式系统-协处理器Load/Store指令的寻址方式

​一条协处理器Load/Store指令可以再ARM处理器和协处理器之间传输批量数据。其语法格式如下:

<opcode>{<cond>} {L}  <coproc>,<CRd>,<addressing_mode>

其中<addressing_mode>表示地址的变化方式,有如下4种:

  • [<Rn>,#+/-<offset_8>*4]

  • [<Rn>,#+/-<offset_8>*4]!

  • [<Rn>],#+/-<offset_8>*4

  • [<Rn>],<option>

协处理器Load/Store指令的编码格式:

刘帅嵌入式系统-协处理器Load/Store指令的寻址方式

标志位含义如下:

U标志位表示基址寄存器<Rn>值的更新方式。当U = 1时, 基址寄存器<Rn>的值加上地址偏移量;当U = 0时,基址寄存器<Rn>的值减去地址偏移量。

N标志位的含义由各协处理器决定,一般用来表示传输数据字的字节大小。

W标志位表示指令执行后,基址寄存器<Rn>的值是否更新。当W = 1时,指令执行后更新基址寄存器的内容;当W = 0时,指令执行后基址寄存器的内容不变。

标志位P和W一起决定指令中基址寄存器内容更新的方式,如下图所示:

刘帅嵌入式系统-协处理器Load/Store指令的寻址方式

L标志位表示操作的类型。当L=1时,执行Store操作;当L=0时,执行Load操作。