📄 preemphasis.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 + -