📄 diir.asm
字号:
.title "diir.asm"
.mmregs
.global start
.def start, _c_int00
N .set 16
table
.word 63, 0, -188, 0, 188, 0, -63
.word 0, 11675, 0, 9663, 0, 2948
.data
INPUT .copy "iirin.inc"
INBUF .usect "INBUF",256
OUTPUT .usect "OUTPUT",256
BN .usect "BN",N+1
AN .usect "AN",N+1
.text
.asg AR0, INDEX_P
.asg AR2, XN_P
.asg AR3, ACOEF_P
.asg AR4, YN_P
.asg AR5, BCOEF_P
_c_int00
b start
nop
nop
start: SSBX FRCT
SSBX OVM
SSBX SXM
STM #BN+N,AR1
RPT #N
MVPD #table,*AR1-
STM #AN+N-1,AR1
RPT #N-1
MVPD #table+N+1,*AR1-
STM #OUTPUT, AR1
RPTZ A, #255
STL A, *AR1+
STM #INBUF,AR1
RPT #255
MVPD #INPUT,*AR1+
STM #OUTPUT,YN_P
STM #INBUF,XN_P
STM #N-1,INDEX_P
STM #255,BRC
RPTB LOOP-1
IIR: SUB A,A
STM #BN,BCOEF_P
STM #AN,ACOEF_P
RPT #N-1
MAC *XN_P+,*BCOEF_P+,A
MAC *XN_P,*BCOEF_P,A
MAR *XN_P-0
RPT #N-1
MAC *YN_P+,*ACOEF_P+,A
STH A,*YN_P-0
LOOP:
EEND B EEND
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -