最近在读美国导师发给我的DSP2808编写的汇编语言程序,遇到了一些问题,这
些指令我从网上无法查证,还没去美国,没人能请教,希望大家能告诉我或者告
诉我从哪里可以学到这些东西,老板太忙了,也不敢联系他去问,程序也不是他做的。万分感谢!
问题一:移动数指令就有好几种:MOV MOVZ MOVL MOVW
问题二:跳转指令 BF LB
问题三:移位指令 SPM SFR LSL
问题四:乘指令 MPYA MPYXU IMPYL
问题五:地址指令 @ * #
以上是我不太清楚他们之间的区别,对操作数的作用不是很确定,只能根据程序猜
还有几个语句
问题六:MOVLXAR6, *+XAR7[AR0] 语句*+XAR7[AR0]是什么意思?
问题七:MOV*XAR5++, #BLDCPWM_100Output 语句 *XAR5++ 是什么意思?
问题八:程序中经常有这类语句 SUBACC, @_velocityLPRef<<16
但是velocityLPRef被定义为externint 是16的变量,如果左移16位岂不是变为0
,那相减操作还有何意义?
问题九:程序中常用的寄存器 DP PC 代表什么含义
MOVW DP,#ETCLR1>>6
MOV @ETCLR1,#0x01;
MOVW DP,#PIEACK>>6;
MOV @PIEACK,#PIEACK_GROUP3
想这段程序署名为Interrupt management 这里的DP就不懂了
问题十:还有跳转判断条件不清楚 如以下两句
BFDirUP?, NTC
BFm_positiveRltDn?, GT
NTC和GT代表什么意思,另外这两句中"?"什么意思 |