fir_filt.asm

来自「在TI的CCS环境下用C语言编写的lms算法,已经通过测试」· 汇编 代码 · 共 50 行

ASM
50
字号
;
;    fir_filt.asm - Generic FIR filter
;
;    prototype: unsigned int fir_filt(int *, unsigned int, int *,
;                            unsigned int, int *, int *, unsigned int);	                           
;
;    Entry: arg0: AR0 - filter input sample buffer pointer   
;           arg1: T0  - number of samples in input buffer
;           arg2: AR1 - FIR coefficients array pointer     
;           arg3: T1  - FIR filter order
;           arg4: AR2 - output sample buffer pointer
;           arg5: AR3 - delayline buffer pointer      
;           arg6: AR4 - delayline buffer index
;
;    Return: T0 = Delayline buffer index
;
N0		.set	48
N1		.set 	48
Ns 		.set 	128

     .def  _fir_filt
     .ref  _LP_coef,_in,_d_fir 
     .sect "fir_code"
	
_fir_filt              
     pshm  	ar2
     pshm   ar3
     pshm  	st0
     pshm  	st1
       
     ssbx 	frct
     ssbx  	sxm
     
     stm	#_in,ar3
     stm 	#_d_fir,ar2
     
     ld 	*ar3+,a
     stl	a,*ar2			; input new data !
     addm   #N1-1,*(ar2)
     rptz    a,#N1-1
     macd   *ar2-, #_LP_coef,a
     
     popm	st1
     popm	st0
     popm	ar3
     popm	ar2
     ret
    .end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?