我对 asm 的东西有点陌生。查看从 C 为 TI 的 C28x CPU 生成的 asm 并获得指令
MOVL *+XAR4[0],ACC
我知道它是一个长操作数移动指令,它获取累加器中的值并将其放在...指向的位置......什么?
XAR4 是辅助寄存器 4,但 '+' 和 '[0]' 有什么作用呢?他们会需要额外的周期吗?
我对 asm 的东西有点陌生。查看从 C 为 TI 的 C28x CPU 生成的 asm 并获得指令
MOVL *+XAR4[0],ACC
我知道它是一个长操作数移动指令,它获取累加器中的值并将其放在...指向的位置......什么?
XAR4 是辅助寄存器 4,但 '+' 和 '[0]' 有什么作用呢?他们会需要额外的周期吗?
从“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
指向的内存位置。XAR4
XAR4+0
当 3 位偏移量为 0 时,可以将其省略:
The assembler also accepts ”*XARn” as an addressing mode.
This is the same encoding as the ”*+XARn[0]” mode