⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comp_corr.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** Description:     comp_corr()      in calc_cor.c                         **
**                                                                         **
** Inputs                                                                  **
**     AR1---Word16 L_frame       : length of frame to compute pitch       **
**    XAR2---Word16 scal_sig[]    : scaled signal.                     	   **
**     AR0---Word16 lag_max       : maximum lag                            **
**     AR4---Word16 lag_min       : minimum lag                            **
**								                                    	   **
**Outputs:                                                                 **
**    *XAR3---Word32 corr[]       :correlation of selected lag             **
**                                                                         **
** Return value :                                                          **
**                                                                         **
** Attribute    :      		        Cycles:47157     Pm:21                 **
**                      Modified Registers: AR1,XAR2,XAR3,AR4,XAR7         **
**                                          ACC,P,T                        **
**										            				       **
** Programmer   :       ZHOU Bei       (ok! Mar 5th,2003)                  **
*****************************************************************************

	  .global _comp_corr
	  
_comp_corr:	
		DEC	    AR4             ; For loop times
		DEC     AR1				; For loop times
		
		MOVL	ACC,XAR2		; Set strat to scal_sig[-lag_max]
		SUB 	ACC,AR0
		MOVL	XAR7,ACC
		
		MOVL	ACC,XAR3      	; Set strat to corr[-lag_max]
		SUB	    ACC,AR0<<1
		
		MOVL	XAR3,ACC
_LOOP_66:
	    
  	    	PUSH	XAR2			; Save start addr of scal_sig[-m]
			PUSH	XAR7			; Save times for _loop_72 
			push	xar1
			zapa
;_loop_70:
		    ;nop
		 	rpt		ar1
	     	||mac     p,*xar2++,*xar7++
		    	;MOV		T,*XAR2++
		    	;MPYA	P,T,*XAR7++
;		    	mac     p,*xar2++,*xar7++
;		    	BANZ	_loop_70,ar1--
		            
		    ADDL 	ACC,P<<PM         	; Perform final accumulate
		    MOVL    *XAR3++,ACC         ; Save 32bits to corr[-m]
		    pop		xar1
		    POP	    XAR7	  			; Resume times for _loop_72
		    POP	    XAR2				; Resume start address of scal_sig[-m]
		    ADDB	XAR7,#1				; Start address of scal_sig[-m]++
		    DEC		AR0					; Dec maximum lag 
		    BAR     _LOOP_66,AR0,AR4,NEQ  ; If maxmum_lag!=minmum_lag,Loop
		 
		 LRETR

⌨️ 快捷键说明

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