我对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