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 + -
显示快捷键?