lag_wind.asm
来自「基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是sta」· 汇编 代码 · 共 48 行
ASM
48 行
*****************************************************************************
** Description: lag_wind() in lag_wind.c **
** **
** Inputs : **
** AR1---Word16 m LPC order **
** *XAR2---Word16 r_h[] Autocorrelations (msb) **
** *XAR3---Word16 r_l[] Autocorrelations (lsb) **
** **
** Outputs: **
** *XAR2---Word16 r_h[] Autocorrelations (msb) **
** *XAR3---Word16 r_l[] Autocorrelations (lsb) **
** Return value : **
** **
** Attribute : Cycles: 1116 Pm:12 **
** Modified Registers: AR1,AR4,XAR2,XAR3.XAR6,XAR7 **
** XT,ACC,P **
** **
** Programmer : ZHOU Bei (ok! Mar 4th,2003) **
*****************************************************************************
.global _lag_wind
.ref lag_h
.ref lag_l
.ref _mpy_32
_lag_wind:
DEC AR1
MOVL XAR7,#lag_h
MOVL XAR6,#lag_l
ADDB XAR2,#1 ;Start working on 2nd word of r_h[]
ADDB XAR3,#1 ;Start working on 2nd word of r_l[]
_LOOP_67:
LCR _mpy_32 ;32 bit multiply r*lag
ADDB XAR7,#1
ADDB XAR6,#1
MOV *XAR2++,AH ;save MSB to r_h
LSR AL,#1
MOV *XAR3++,AL ;save LSB>>1 to r_l
BANZ _LOOP_67,AR1-- ;Loop if AR1!=0,AR1--
LRETR
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?