gainquant.asm
来自「基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是sta」· 汇编 代码 · 共 89 行
ASM
89 行
*****************************************************************************
** Description: gainQuant() in gain_q.c **
** **
** Inputs **
** **
** word16 gainQuantState *st, I/0 全局变量
** xar7--- Word16 *code
** xar0 ---Word16 xn[] **
** xar1 ---Word16 xn2[] **
** xar2 ---word16 y1[] **
** xar3 ---word16 y2[] **
** xar4 ---word16 g_coeff[] **
** ar5 ---word16 gp_limit
**
** outputs
** _buffer1---Word16 *gain_pit I/O -_buffer1 **
** _buffer1+2---Word16 *gain_cod ** **
** xar6 ---*anap **
** Return value : **
** **
** Attribute : Cycles: 11718 Pm: 31 **
** Modified Registers: all **
** **
** Programmer : xiewei **
*****************************************************************************
.ref past_qua_en
.ref _gc_pred
.ref _calc_enc
.ref _qua_gain
.ref _gc_pred_update
.ref _buffer1
.global _gainQuant
_gainQuant:
ADDB SP ,#18
MOV *-SP[2],AR5
MOVL *-SP[6],XAR0
MOVL *-SP[8],XAR1
MOVL *-SP[10],XAR2
MOVL *-SP[12],XAR3
MOVL *-SP[14],XAR4
MOVL *-SP[16],XAR6
LCR _gc_pred ;gc_pred(st->gc_predSt, code, &exp_gcode0, &frac_gcode0,
; &exp_en, &frac_en);
MOVL *-SP[4],ACC
MOVL XAR0,*-SP[6]
MOVL XAR1,*-SP[8]
MOVL XAR2,*-SP[10]
MOVL XAR3,*-SP[12]
MOVL XAR6,*-SP[14]
MOVL XAR4, #0x000080e0
MOVL XAR5, #0x000080e8
LCR _calc_enc ;calc_filt_energies(xn, xn2, y1, Y2, g_coeff,
; frac_coeff, exp_coeff,
; &cod_gain_frac, &cod_gain_exp);
MOVL ACC,*-SP[4]
MOV @AR3,AL
MOV AL,AH
MOV AR6,*-SP[2]
MOVL XAR2,#_buffer1 ;-1
MOVL XAR1,#_buffer1+2 ;-0
MOVL XAR0,*XAR1
MOVL XAR1,*XAR2
; ADDB XAR1,#1
MOVL XAR2,#_buffer1+4
MOVL XAR7,#_buffer1+6
LCR _qua_gain ; *(*anap)++ = Qua_gain(exp_gcode0, frac_gcode0,
MOVL XAR6,*-SP[16] ; frac_coeff, exp_coeff, gp_limit,
MOV *XAR6,AR5 ; gain_pit, gain_cod,
ADDB XAR6,#1
;MOV AH,AR5 ; &qua_ener_MR122, &qua_ener);
MOVL *-SP[16],XAR6
MOV AR7,*XAR7
MOV AR6,*XAR2
MOVL XAR5,#past_qua_en
LCR _gc_pred_update
MOVL XAR6,*-SP[16]
;MOV @AR5,AH
SUBB SP,#18
LRETR
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?