3

我对 asm 的东西有点陌生。查看从 C 为 TI 的 C28x CPU 生成的 asm 并获得指令

MOVL *+XAR4[0],ACC

我知道它是一个长操作数移动指令,它获取累加器中的值并将其放在...指向的位置......什么?

XAR4 是辅助寄存器 4,但 '+' 和 '[0]' 有什么作用呢?他们会需要额外的周期吗?

4

1 回答 1

1

从“TMS320C28x DSP CPU和指令集参考指南”的第5.6节“间接寻址模式” :

*+XARn[3bit]
32bitDataAddr(31:0) = XARn + 3bit
Note: The immediate value is treated as an unsigned 3-bit value.

因此它将存储在(具体而言)ACC指向的内存位置。XAR4XAR4+0

当 3 位偏移量为 0 时,可以将其省略:

The assembler also accepts ”*XARn” as an addressing mode.
This is the same encoding as the ”*+XARn[0]” mode
于 2013-04-05T13:19:52.427 回答