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

📄 lsp_avg.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
***************************************************************************
** Description:     lsp_avg() in lsp_avg.c                              
**                                                                         
** Inputs                                                                  
**                                                                         
**		lsp_meanSave[M]
**		XAR1:	Word16 *lsp		
**                                                
** Outputs:                                                                
**                                                                         
**   	lsp_meanSave[M]
**                                                                         
** Return value:
**	
**   	none
**                                                                         
** Attribute:   Cycles: 396        Pm: 12                            
**                      
** Modified Registers:  ACC,T,P,XAR0,XAR7                          
**                                                                         
** Programmer: Liu Yang
**
** Complete time: 2003 4 14		
*****************************************************************************

		.global _lsp_avg
		.ref	lsp_meanSave
		.ref	M					; cnst = 10
		.ref	EXPCONST			; cnst = 5243

_lsp_avg:
		
		MOV		AR0,#M-1			; AR0 = M - 1
		MOV		T,#EXPCONST			; T = EXCONST
		MOVL	XAR7,#lsp_meanSave	; XAR7 = &lsp_meanSave[0]
		
		; mean = 0.84*mean
		
L1:		MOV		ACC,*XAR7 << 16	; ACC = L_tmp = L_deposit_h(st->lsp_meanSave[i])
		MPY		P,T,@AH				; P = EXPCONST * st->lsp_meanSave[i]
		SUBL	ACC,P << PM			; ACC = L_tmp = L_msu(L_tmp, EXPCONST, st->lsp_meanSave[i])
		
		; Add 0.16 of newest LSPs to mean
		
		MPY		P,T,*XAR1++			; P = EXPCONST * lsp[i], i++
		ADDL	ACC,P << PM			; ACC = L_tmp = L_mac(L_tmp, EXPCONST, lsp[i])
		
		; Save means
		
		ADD		ACC,#0x0800 << 4		; ACC = round(L_tmp)
		MOV		*XAR7++,AH			; st->lsp_meanSave[i] = round(L_tmp), i++
		
		BANZ	L1,AR0--
		
		LRETR

⌨️ 快捷键说明

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