使用+和[]进行间接寻址

时间:2013-04-05 11:55:28

标签: assembly addressing-mode

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

MOVL *+XAR4[0],ACC

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

XAR4是辅助寄存器4但是'+'和'[0]'是做什么的?他们会采取额外的周期吗?

1 个答案:

答案 0 :(得分: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存储在XAR4指向的内存位置(XAR4+0具体)。

当3位偏移为0时,可以将其保留:

The assembler also accepts ”*XARn” as an addressing mode.
This is the same encoding as the ”*+XARn[0]” mode