This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于TMS320F28377S,汇编指令的问题

我最近因为某些需要,在学习C28X系列mcu的汇编语言,英文水平一般般,不能完全看懂指令集手册中的内容,现遇到如下困惑,希望能有高手不吝赐教。

问题1,间接寻址模式,我看到技术文档TMS320C28x CPU and Instruction Set (Rev. F)里面,间接寻址模式下的loc16和loc32的合法语法形式有*XARn++; *- -XARn; *+XARn[AR0/1]; *+XARn[3bit] 这几种,这几种形式都带有执行完毕后偏移XARn指针的效果,如果想指令执行完毕后保持XARn的值不变的话,该怎么实现?指令参考手册里面没有对保持XARn保持不变的话题进行论述(没有详细说明++和- -是否是可选项,还是因为说明这个东西显得啰嗦)。

问题2,最近看到一条奇怪的指令“ mov      *AR1,AL ",那么这条指令的原型是 “mov    loc16,Ax” 吗?如果是的话*AR1属于什么样的寻址方式,间接寻址吗?但是TMS320C28x CPU and Instruction Set (Rev. F)里面并没有对这类*ARn形式的loc16/loc32进行说明,并不是手册里给出的标准形态,与之接近的是*XARn++和 *- -XARn。汇编器对这条指令并没有报错,是手册疏漏了还是我没注意到手册上什么地方对这类*ARn进行了论述?

  • 说实话,研究汇编的人确实已经很少了。估计会的人也没几个,还好这个片子出来很早了,有不少学校的教材,都是拿这个芯片做的,里面有讲汇编的部分,可以参考看看了。

  • 第一个问题我在手册上的一小段Note说明中找到答案了,汇编器会接受像“*XARn”这样的寻址语法,它最终的编码结果跟“*+XAR[0]”是一样的,也就是说汇编器遇到“*XARn”后,会在自己内部悄悄转义替换为“*+XARn[0]”,然后汇编成机器码,即顺应了人的自然思维习惯,又无需扩增新的指令。不过第二个问题还在寻找答案当中。

x 出现错误。请重试或与管理员联系。