📄 firci.asm
字号:
;
;File name: FIRCIA.ASM
;
;Originator: Digital Control Systems Group
; Texas Instruments
;
;Description:
;===========
; Header file containing the initialization routine for Circular buffer FIR
; filter modules viz., FIRFILT_CGEN, FIRFILT_CORD10 & FIRFILT_CORD20
;===================================================================
; History:
;-------------------------------------------------------------------
;25-1-2000 Release Rev 1.0
;-------------------------------------------------------------------
.def _FIRFILT_CIR_init ; Init Rouine for Circular buffer
_FIRFILT_CIR_init:
POPD *+ ; Store the Return Address in stack
SAR AR1,*
LAR AR2,*+,AR2 ; ARP=AR2
SBRK #2 ; ARP=AR2, AR2->FIR_MODULE_ptr
LAR AR2,* ; ARP=AR2, AR2->coeff_ptr
LACL * ; ARP=AR2, AR2->coeff_ptr, ACC=coeff_ptr
ADRK #2 ; ARP=AR2, AR2->order
ADDS * ; ARP=AR2, AR2->order, ACC=coeff_ptr+order
SBRK #2 ; ARP=AR2, AR2->coeff_ptr
SACL *+,0 ; ARP=AR2, AR2->brindex, coeff_ptr=coeff_ptr+order
LACL #1 ; ACC=1
SACL * ; ARP=AR2, AR2->brindex, brindex=1
bri_loop: LACC *,1 ; ARP=AR2, AR2->brindex, ACC=brindex*2
SACL *+ ; ARP=AR2, AR2->order, brindex=brindex*2
SUB *- ; ARP=AR2, AR2->brindex, ACC=brindex-order
BCND bri_loop,LT
LAR AR4,*+ ; ARP=AR2, AR2->order, AR4=brindex
ADRK #1 ; ARP=AR2, AR2->dbuffer_ptr
LAR AR3,*+,AR4 ; ARP=AR4, AR4=order, AR3=dbuffer_ptr & AR2->input
MAR *-,AR3 ; ARP=AR3, AR3=dbuffer_ptr, AR4=order-1
LACL #0 ; ACC=0
cbloop: SACL *+,0,AR4 ; Clear the delay buffer
BANZ cbloop,*-,AR3
MAR *,AR2 ; ARP=AR2, AR2->input
SACL *+ ; ARP=AR2, AR2->output, input=0
SACL * ; ARP=AR2, AR2->output, output=0
SBRK #4 ; ARP=AR2, AR2->brindex
LACL * ; ARP=AR2, AR2->brindex, ACC=brindex
SFR ; ARP=AR2, AR2->brindex, ACC=brindex/2
SACL *,0,AR1 ; ARP=AR2, AR2->dbuffer_ptr, brindex=brindex/2
SBRK #2
PSHD *
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -