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

📄 check_lsp.asm

📁 基于TMS320F2812的AMR+RS编解码+OFDM调制解调源程序。是stand alone运行版本
💻 ASM
字号:
*****************************************************************************
** Description:     check_lsp() in file.c                                  **
**                                                                         **
**Inputs                                                                   **
**                                                                         **
**   xar0--- Word16 st->count                                               ** 
**   
**   xar2--- Word16 *lsp                                                   **
**   
**   
**Outputs:                                                                **
**   ar6---返回的flag值
**                                                                         **
** Temporary:
**    
**  
**   
**                                                                         **
** Return value :                                                          **
**                                                                         **
** Attribute    :       Cycles:  453    Pm: 60                             **
**                      Modified Registers:acc,xar0,xar2,xar3
**                                         xar4,xar5,xar6                                **
**                                                                         **
** Programmer   :       Zhang Xin                                          **
*****************************************************************************
  .global _check_lsp
  
_check_lsp:
  push xar2
  mov  ar4,#0x7fff     ;dist_min1 = MAX_16
  addb xar2,#3
  mov  ar3,#4          ;循环次数
_Loop_136:
  mov  al,*xar2++
  sub  acc,*xar2
  cmp  al,@ar4
  sb   _L1,LT
  sb   _L2,UNC
_L1:
  mov  ar4,al          ;dist_min1 = dist
_L2:
  banz _Loop_136,ar3--
  mov  ar5,#0x7fff     ;dist_min2 = MAX_16
  pop  xar2
  addb xar2,#1
  mov  ar6,#1          ;循环次数
_Loop_148:
  mov  al,*xar2++
  sub  acc,*xar2
  cmp  al,@ar5
  sb   _L3,LT
  sb   _L4,UNC
_L3:
  mov  ar5,al          ;dist_min2 = dist
_L4:
  banz _Loop_148,ar6--
  subb xar2,#2
  mov  ar3,#1100      ;dist_th=1100
  cmp  *xar2,#32000
  sb   _L5,GT
  cmp  *xar2,#30500
  sb   _L6,GT
  sb   _L7,UNC
_L5:
  mov  ar3,#600       ;dist_th = 600
  sb   _L7,UNC
_L6:
  mov  ar3,#800       ;dist_th = 800
_L7:  
  cmp  ar4,#1500
  sb   _L8,LT
  mov  al,ar5
  cmp  al,ar3
  sb   _L8,LT
  sb   _L9,UNC
_L8:
  add  *xar0,#1         ;st->count=add(st->count, 1)
  sb   _L10,UNC
_L9:
  mov  *xar0,#0         ;st->count=0
_L10:
  cmp  *xar0,#12
  sb   _L11,GT
  sb   _L12,UNC
_L11:
  mov  *xar0,#12        ;st->count=12
  mov  ar6,#1         ;return 1
  sb   _L13,UNC
_L12:
  mov  ar6,#0         ;return 0
_L13:
  LRETR

⌨️ 快捷键说明

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