; Begin outer loop on # samples ;---------------------------------------------------------------- _start: RPTBD END_LOOP - 1 ; 2 cycles //块循环[db_ptr]+1次 ; Store 0 to AR0, to use as circular addressing offset ;---------------------------------------------------------------- STM #1, AR0 ; delay slot ; 2 cycles ; Zero the accumulator before calculating next sum. ; Move next input sample into delay buffer ;---------------------------------------------------------------- MVDD *x_ptr+, *db_ptr ; 1 cycles ; Sum h * x for next y value ;---------------------------------------------------------------- MPY *h_ptr+0%, *db_ptr+0%, A ; 1 cycle RPT *sp(nc) ; 2 cycle //重复执行下一条指令*sp(nc)=[BK ]-3+1次。 MAC *h_ptr+0% , *db_ptr+0%, A ; 1 cycle * ncoeffs-2 MACR *h_ptr+0% , *db_ptr, A ; 1 cycle //加上首尾各一次乘累加,总共[BK ]次。 ; Store result ;---------------------------------------------------------------- STH A, *r_ptr+ ; 1 cycle END_LOOP: _end:
[此贴子已经被作者于2006-11-27 23:32:28编辑过] |