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

📄 pre_big.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** Description:     pre_big() in file.c                                  **
**                                                                         **
** Inputs                                                                  **
**                                                                         **
**   xar0---Word16 *gamma1     [11]                                                     **
**   xar7---Word16 *gamma2     [11]                                                **
**   xar3---Word16 *A_t        [11]
**   xar2---Word16 *speech     [40]
**   xar5---Word16 *mem_w      [10]
**   ar4---Word16 frameOffset                                                                          **
** 
** Outputs:                                                                **
**   xar5---Word16 *mem_w                                                                      **
**   xar6---Word16 *wsp    [40]
**   
**                                                                         **
** Temporary:
**   ar1---a0ffset
**   xar4---Word16 *g1
**   xar5---Word16 *Ap1
**   xar6---Word16 *Ap2                                                            **
** Return value :                                                     **
**                                                                         **
** Attribute    :       Cycles:381649      Pm: 60                                   **
**                      Modified Registers: xar0-xar7,acc,p,t                               **
**                                                                         **
** Programmer   :       Zhang Xin                                          **
*****************************************************************************
  	  
      .global _pre_big
      .ref _buffer1
      .ref _buffer2
      .ref _buffer3
      .ref _Syn_filt
      .ref _Weight_Ai
      .ref L_SUBFR
      .ref MP1
      .ref _residu
_pre_big:
     addb sp,#26
     movl *-sp[2],xar2        ;存储*speech的首址
     movl *-sp[4],xar6
     movl *-sp[6],xar5
     movl *-sp[8],xar7
     movl *-sp[10],xar3
     movl xar5,#_buffer3+310    ;存储*Ap1
     movl xar6,#_buffer3+340    ;存储*Ap2
     mov  ar1,#0               ;ar1---a0ffset
     cmp  ar4,#0
     sb   _Loop_73,GT
     sb   _Loop_78,UNC
_Loop_73:
     mov ar1,#22
_Loop_78:
     movl *-sp[12],xar0          ;gamma1的地址
     movl *-sp[14],xar5          ;Ap1的地址
     movl *-sp[16],xar6          ;Ap2
     mov  ar5,#1      			 ;循环次数
_Loop_80:
     movl *-sp[18],xar5      ;i----循环次数
     movl *-sp[20],xar4        ;ar4---frameOffset
     movl *-sp[22],xar1        ;ar1---aOffset
     movl xar1,*-sp[10]
     mov  acc,*-sp[22]
     addl xar1,acc           ;计算A_t[aOffset]
     movl *-sp[24],xar1
     movl xar7,*-sp[12]      ;gamma1
     movl xar2,*-sp[14]      ;Ap1
     LCR  _Weight_Ai         ;第一次调用Weight_Ai
     movl xar7,xar2          ;传递Ap1
     movl xar4,*-sp[2]       ;speech的首址
     mov  acc,*-sp[20]
     addl xar4,acc           ;计算speech[frameOffset]
     movl xar6,*-sp[4]   
     addl xar6,acc
     movl xar3,xar6          ;计算wsp[frameOffset]  
     mov  ar1,#L_SUBFR
     nop
     nop
     LCR  _residu
     movl xar3,xar6          ;恢复xar3的首指针    
     movl xar1,*-sp[24]
     movl xar7,*-sp[8]
     movl xar2,*-sp[16]
     LCR  _Weight_Ai
     movl xar7,xar2
     movl xar1,xar3
     movl xar2,xar3
     mov  ar0,#L_SUBFR
     movl xar3,*-sp[6]
     mov  ar4,#1
     LCR  _Syn_filt 
     movl xar4,*-sp[20]        
     movl xar1,*-sp[22]                 
     add  ar1,#11 
     add  ar4,#L_SUBFR
     movl xar5,*-sp[18]
     banz _Loop_80,ar5--
     subb sp,#26
    LRETR
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

⌨️ 快捷键说明

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