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

​事先更新[<Rn>,#+/-<offset_8>*4]!

指令编码格式:

刘帅嵌入式系统-协处理器Load/Store指令寻址方式二内存地址计算方法:

    这种寻址方式产生一段连续的内存地址。第一个地址为基址寄存器<Rn>值减去/加上指令中立即数的4倍,记作<start_address>;随后的每个地址是前一个内存地址加4(字节);直到协处理器发出信号,结束本次数据传输。这种寻址方式允许协处理器来决定传输数据的数目。

    这种寻址方式最大可以传输16个字的数据。

    当指令执行条件满足时,将<first_address>的值写入基址寄存器<Rn>。

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

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

    --offset_8乘以4生成新的偏移量。

    --!用来设置W位,更新基址寄存器的内容。

    计算内存实地地址的伪代码:

    if ConditionPassed(cond) then

        if U == 1 then

            Rn= Rn + offset_8*4

        else /* U == 0 */

            Rn= Rn - offset_8*4

     start_address  = Rn

    address = start_address  

    while(NotFinished(coprocessor[cp_num]))

        address = address + 4

    end_address = address

    使用说明:

    当R15作为Rn时,会产生不可预知的错误。

相关文章:

  • 2021-09-22
  • 2022-01-16
  • 2021-05-09
  • 2021-08-21
  • 2021-09-27
  • 2021-12-30
  • 2021-09-02
  • 2021-04-05
猜你喜欢
  • 2021-12-18
  • 2021-05-19
  • 2021-06-21
  • 2021-10-26
  • 2021-04-10
  • 2021-11-08
  • 2021-09-07
相关资源
相似解决方案