ARM PLD和偏移量

时间:2017-07-30 08:08:29

标签: caching assembly arm

早上好,我正在研究ARM组装,Cortex A系列。阅读ARM文档我发现了本文(Cortex A8,快速memcpy示例)。我注意了PDL指令,预加载到缓存中。我在ARM手册上已经阅读过它,但我仍然不明白为什么偏移是这样的:

WordCopyPLD
      PLD [r1, #0x100]
      MOV r12, #16
WordCopyPLD1
      LDR r3, [r1], #4
      STR r3, [r0], #4
      SUBS r12, r12, #1
      BNE WordCopyPLD1
      SUBS r2, r2, #0x40
      BNE WordCopyPLD

为什么这种情况下的偏移量是前面的128字节?如果我从R1指向的内存中读取单词16次,我认为前面的字节是4 * 16 = 64。为什么选择128?

与此示例相同的问题:

NEONCopyPLD
      PLD [r1, #0xC0]
      VLDM r1!,{d0-d7}
      VSTM r0!,{d0-d7}
      SUBS r2,r2,#0x40
      BGE NEONCopyPLD

如果Dn是每个8字节,为什么前面192字节,我每次迭代加载8个寄存器?

感谢您的回答。

0 个答案:

没有答案