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

📄 preemphasis.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** Description:     preemphasis() in file.c                                **
**                                                                         **
**Inputs:                                                                  **
**                                                                         **
**   xar0---Word16 st->mem_pre                                               
**   xar1---Word16 *signal
**   ar2---Word16 g
**   ar3---Word16 L                                                                      **
**   
**Outputs:                                                                **
**   ar0---Word16 st->mem_pre                                                                 **
**   xar1---Word16 *signal
**                                                                         **
** Temporary:
**    
**  
**   
**                                                                         **
** Return value :                                                          **
**                                                                         **
** Attribute    :       Cycles: 1464     Pm: 24                             **
**                      Modified Registers:acc,xar0,xar1,xar2
**                                         xar3,xar4,t,p                                **
**                                                                         **
** Programmer   :       Zhang Xin                                          **
***************************************************************
 .global _preemphasis
 
_preemphasis:
  dec   @ar3    ;  (L-1)
  ;by yangzhw
  mov   acc,@ar3
  addl  xar1,acc     ;p1 = signal + L - 1
  movl  xar4,@xar1
  subb  xar4,#1      ;p2 = p1 - 1
  mov   al,*xar1     ;temp=*p1
  push  al
  dec   @ar3    ;循环次数
_Loop_135:
  zapa
  mov   t,*xar4      ;*p2
  mpy   p,t,ar2      ;mult (g, *p2--)
  addl  acc,p<<pm    
  sub   *xar1,ah     ;*p1 = sub (*p1, mult (g, *p2--))
  subb  xar1,#1
  subb  xar4,#1
  banz  _Loop_135,ar3--
  
  mov   t,*xar0        ;st->mem_pre
  mpy   p,t,ar2      ;mult (g, st->mem_pre)
  movl  acc,p<<pm
  sub   *xar1,ah     ;*p1 = sub (*p1, mult (g, st->mem_pre))
  pop   al
  mov   *xar0,al       ;st->mem_pre = temp
  LRETR
  
 

⌨️ 快捷键说明

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