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

📄 code_2i40_9bits.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** Description:     search_2i40_9bits() in c2_9pf.c                        **
**                                                                         **
** Inputs                                                                  **
**                                                                         **
**   al  ---Word16 pitch_sharp                                             **
**   ar4 ---Word16 subNr                                                   **
**   xar2---Word16 h[]                                                     **
**   xar3---Word16 x[]                                                     **
**   ah ----Word16 T0                                                      **
**                                                                         **
** Outputs:                                                                **
**                                                                         **
**   xar5---Word16 code[]                                                  **
**   xar6---Word16 y[]                                                     **         
**   xar7---Word16 sign[]                                                  **                      
**                                                                         **
**                                                                         ** 
**                                                                         **
** Return value :       pl                                                 **
**                                                                         **
** Attribute    :       Cycles:208616     Pm: 65                           **
**                      Modified Registers:  all                           **
**                                                                         **
** Programmer   :       Qi Ying                                            **
*****************************************************************************
                  .global   _code_2i40_9bits
                  .ref      _cor_h_x
                  .ref      _set_sign
                  .ref      _cor_h
                  .ref      _search_2i40
                  .ref      _build_code
                  .ref      _buffer1
                  .ref      _buffer2
                  .ref      _buffer3

_code_2i40_9bits:
                  addb    sp,              #20
                  lsl     al,              #1           ;al=sharp
                  movl    *-sp[2],         acc          ;T0,sharp
                  cmp     ah,              #40
                  sb      _Line_139,       GEQ
                  movz    ar0,             ah           ;ar0=i
_Loop_136:
                  cmp     ar0,             #40
                  sb      _Line_139,       GEQ
                  sub     ar0,             ah           ;ar0=i-T0
                  mov     T,               *+xar2[ar0]  ;h[i-T0]  
                  add     ar0,             ah           ;ar0=i
                  mpy     acc,     T,      al
                  lsl     acc,             #1
                  add     *+xar2[ar0],     ah           ;h[i]   
                  movl    acc,             *-sp[2]  
                  inc     ar0                           ;i++
                  sb      _Loop_136,       UNC
_Line_139:                  
                  movl    *-sp[4],         xar2
                  movl    *-sp[6],         xar3
                  movl    *-sp[8],         xar4
                  movl    *-sp[10],        xar5
                  movl    *-sp[12],        xar6
                  movl    *-sp[14],        xar7
                  mov     ar4,             #1
                  movl    xar1,            #_buffer1+80  ;dn
                  LCR     _cor_h_x                      
                  
                  movl    xar7,            xar1         ;input:xar7=dn
                  movl    xar5,            #_buffer1+40      
                  movl    xar2,            #_buffer2      
                  LCR     _set_sign                     ;output:xar7=dn
                                                        ;       xar5=dn_sign
                                                        ;       xar2=dn2 
                  movl    *-sp[16],        xar7          
                  movl    *-sp[18],        xar5
                  movl    xar1,            *-sp[4]      ;input:xar1=h
                  movl    xar3,            *-sp[18]     ;      xar3=dn_sign     
                  movl    xar7,            #_buffer3     
                  LCR     _cor_h                        ;output:xar7=rr[]  
                 
                  movl    xar4,            *-sp[8]
                  mov     al,              ar4          ;input:al=subNr
                  movl    xar3,            *-sp[16]     ;      xar3=dn
                  movl    xar4,            xar7         ;      xar4=rr         
                  movl    xar2,            #_buffer2     
                  LCR     _search_2i40                  ;output:xar2=codvec
                  
                  movl    xar4,            *-sp[8]              
                  mov     al,              ar4          ;input:al=subNr
                  movl    xar3,            *-sp[18]     ;      xar3=dn_sign
                  movl    xar4,            *-sp[4]      ;      xar4=h                 
                                                        ;      xar2=codvec
                  movl    xar5,            *-sp[10]   
                  movl    xar6,            *-sp[12]
                  movl    xar7,            *-sp[14]                           
                  LCR     _build_code                   ;output:xar5=code
                                                        ;       xar6=y
                                                        ;       xar7=sign
                                                        ;       pl=index
                  
                  movl    acc,             *-sp[2]      ;T0,sharp 
                  cmp     ah,              #40
                  sb      _Line_156,       GEQ
                  movz    ar0,             ah           ;ar0=i
_Loop_153:
                  cmp     ar0,             #40
                  sb      _Line_156,       GEQ
                  sub     ar0,             ah           ;ar0=i-T0
                  mov     T,               *+xar5[ar0]  ;h[i-T0]  
                  add     ar0,             ah           ;ar0=i
                  mpy     acc,     T,      al
                  lsl     acc,             #1
                  add     *+xar5[ar0],     ah           ;h[i]   
                  movl    acc,             *-sp[2]
                  inc     ar0                           ;i++
                  sb      _Loop_153,       UNC
_Line_156:       
                  subb    sp,              #20
                  LRETR
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  

⌨️ 快捷键说明

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