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

📄 lsf_lsp.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** description:     _lsf_lsp in lsf_lsp.c                                  **
**                                                                         **
** Inputs                                                                  **
**                                                                         **
**   xar2---Word16 *lsf                                                    **
**   xar3---Word16 *lsp                                                    **
**                                                                         **
** Outputs:                                                                **
**                                                                         **
**   xar3---Word16 *lsp                                                    **
**                                                                         **
** return value :       none                                               **
**                                                                         **
** attribute    :       cycles:852(m=10)   pm:19                           **
**                      Modified registers:  acc,ar0,ar1,xar2,xar3,ar6,xar7**
**											 t,c                           **
**                                                                         **
** Programmer   :       YANG zhiwei                                        **
*****************************************************************************

      .global _lsf_lsp
  		
      .ref lsf_table
      .ref M
_lsf_lsp:  
		 mov	ar0,#M-1			;m = M
		 ;dec	ar0
 		 movl	xar7,#lsf_table		;xar7 = pointer to lsf_table
_loop_69:
		 mov	al,*xar2		;al = lsf[i]
		 asr	al,8			;ind = al
		 mov	ar1,al		    ;ar1 = ind
		 
		 and	ah,*xar2++,#0x00ff	  ;ah = lsf[i]&#0x00ff,then i++
		 mov	ar6,ah			;ar6 = offset
	
	 	 inc	ar1	 	 		;ar1 = ind + 1
		 mov	al,*+xar7[ar1]  ;acc = lsf_table[ind+1]
		 dec	ar1
		 sub	al,*+xar7[ar1]  ;al = lsf_table[ind+1] - lsf_table[ind]
		 mov	t,al
		 mpy	acc,t,ar6		;acc = al * offset
		 mov	t,#8
		 asrl	acc,t			;arithmetically shift right by t
		 add 	al,*+xar7[ar1]
		 mov	*xar3++,al		;lsp[i] = *xar3,then xar3++
		 banz	_loop_69,ar0--	
         lretr

⌨️ 快捷键说明

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