?? lsp_lsf.asm
字號:
*****************************************************************************
** Description: _lsp_lsf in lsf_lsp.c **
** **
** Inputs **
** **
** xar3---Word16 *lsp **
** xar2---Word16 *lsf **
** **
** Outputs: **
** **
** xar2---Word16 *lsf **
** **
** Return value : none **
** **
** Attribute : Cycles:2178(m=10) Pm:20 **
** Modified Registers: acc,t,c,ar0,xar1,xar6,xar7 **
** **
** Programmer : YANG zhiwei **
*****************************************************************************
.global _lsp_lsf
.ref slope
.ref lsf_table
.ref M
_lsp_lsf:
movl xar6,#slope ;xar6 = pointer to slope
movl xar7,#lsf_table ;xar7 = pointer to lsf_table
mov ar1,#63 ;ind = 63
mov ar0,#M-1 ;m = M
_loop_94:
mov ah,*+xar3[ar0] ;ah = lsp[i]
_loop_98:
mov al,ah
sub al,*+xar7[ar1] ;ah = lsp[i] - lsp_table[ind]
bf _line_107,lt ;if ( lsp[i] - lsp_table[ind] ) < 0,jump to _line_107
dec ar1 ;ind--
bf _loop_98,unc
_line_107:
mov t,al ;t = lsp[i] - lsp_table[ind]
mpy acc,t,*+xar6[ar1] ;acc = ( lsp[i] - lsp_table[ind] ) * slope[ind]
lsl acc,#3+1 ;acc left shift by 3+1
add acc,#0x0800<<4
mov al,ar1
lsl al,8
add ah,al ;ah = ah + ind<<8
mov *+xar2[ar0],ah ;lsf[i] = ah
banz _loop_94,ar0-- ;ar1 = i not equal zero,jump to _loop_94,i--
LRETR
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -