TI论坛
直播中

刘燕

7年用户 1327经验值
私信 关注
[问答]

TMS320F2812汇编指令SUBCU除法算法是特定的吗?

初学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 是什么呢?
有没有大神解释哈哈。。。。

回帖(5)

吴立节

2018-10-16 10:47:07
Move to the C2000 forum
举报

刘燕

2018-10-16 10:58:40
引用: sunsiyi92 发表于 2018-10-16 10:34
Move to the C2000 forum

程序里MOVB ACC,#0 是把ACC置0,怎么后面语句||SUBCUL ACC,@XT又把ACC当成被除数呢,这个语句不是将被除数重复32次减去除数么?ACC不应该是0呀?求解释!!!!!
举报

李秋年

2018-10-16 11:10:11
引用: kszdj113 发表于 2018-10-16 10:45
程序里MOVB ACC,#0 是把ACC置0,怎么后面语句||SUBCUL ACC,@XT又把ACC当成被除数呢,这个语句不是将被除数重复32次减去除数么?ACC不应该是0呀?求解释!!!!!

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。
举报

刘燕

2018-10-16 11:15:48
引用: szoldman 发表于 2018-10-16 10:57
SUBCUL ACC,loc32执行的是
temp(32:0) = ACC << 1 + P(31) − [loc32];
if( temp(32:0) >= 0 )

十分感谢!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分