📄 fir.asm
字号:
;一个FIR滤波器源程序 fir.asm
.mmregs
.global start
.def start,_c_int00
INDEX .set 1
KS .set 256
.copy "firin.inc" ;x(n)在程序区0x00A6
.copy "firdata.inc" ;Bn
.data
OUTPUT .space 1024 ;输出在数据区0x2400
FIR_DP .usect "FIR_VARS",0
D_FIN .usect "FIR_VARS",1
D_FOUT .usect "FIR_VARS",1
COFFTAB .usect "FIR_COFF",N
DATABUF .usect "FIR_BFR",N
BOS .usect "STACK",0Fh
TOS .usect "STACK",1
.text
.asg AR0,INDEX_P
.asg AR4,DATA_P
.asg AR5,COFF_P
.asg AR6,INBUF_P
.asg AR7,OUTBUF_P
_c_int00
b start
nop
nop
start:
STM #COFFTAB,COFF_P
RPT #N-1
MVPD #COFF_FIR,*COFF_P+
STM #INDEX,INDEX_P
STM #DATABUF,DATA_P
RPTZ A,#N-1
STL A,*DATA_P+
STM #(DATABUF+N-1),DATA_P
STM #COFFTAB,COFF_P
FIR_TASK:
STM #INPUT,INBUF_P
STM #OUTPUT,OUTBUF_P
STM #KS-1,BRC
RPTBD LOOP-1
STM #N,BK
LD *INBUF_P+,A
FIR_FILTER:
STL A,*DATA_P+%
RPTZ A,N-1
MAC *DATA_P+0%,*COFF_P+0%,A
STH A,*OUTBUF_P+
LOOP:
EEND B EEND
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -