初学DSP, 对于DSP汇编不是很熟悉 是不是DSP有其特定的汇编指令呢?比如2812的除法算法 代码如下:
CLRC TC ; Clear TC flag, used as sign flag
MOVB AH, #1 ;AH是ACC的高16位
MOVB AL, #0 ; 置ACC为65536
SUB ACC,#24576 ;得ACC为40960;即为除数
MOVL XT,@ACC
MOVL ACC,*XAR4
ABSTC ACC
MOVL P,@ACC
MOVB ACC,#0 ; Zero ACC
RPT #31
||SUBCUL ACC,@XT
MOVL ACC,@P
NEGTC ACC
MOVL XAR4,#real_part
MOVL *XAR4,ACC
求大神指教代码具体含义,尤其是||SUBCUL ACC,@XT 是什么呢?
有没有大神解释哈哈。。。。
2018-10-16 10:58:40
程序里MOVB ACC,#0 是把ACC置0,怎么后面语句||SUBCUL ACC,@XT又把ACC当成被除数呢,这个语句不是将被除数重复32次减去除数么?ACC不应该是0呀?求解释!!!!!
程序里MOVB ACC,#0 是把ACC置0,怎么后面语句||SUBCUL ACC,@XT又把ACC当成被除数呢,这个语句不是将被除数重复32次减去除数么?ACC不应该是0呀?求解释!!!!!
举报
2018-10-16 11:10:11
SUBCUL ACC,loc32执行的是
temp(32:0) = ACC << 1 + P(31) − [loc32];
if( temp(32:0) >= 0 )
ACC = temp(31:0);
P = (P << 1) + 1;
else
ACC:P = ACC:P << 1;
所以第一次执行的是P(31) -@XT。
SUBCUL ACC,loc32执行的是
temp(32:0) = ACC << 1 + P(31) − [loc32];
if( temp(32:0) >= 0 )
ACC = temp(31:0);
P = (P << 1) + 1;
else
ACC:P = ACC:P << 1;
所以第一次执行的是P(31) -@XT。
举报