📄 iir3.asm
字号:
.mmregs
.ref filter_start
K_DATA_SIZE .set 256
K_BUFFER_SIZE .set 8
K_STACK_SIZE .set 256
K_A .set 3
K_B .set 4
K_CIR .set K_BUFFER_SIZE
STACK .usect "stack",K_STACK_SIZE
SYSTEM_STACK .set K_STACK_SIZE+STACK
DATA_DP .usect "filter_vars",0
filterdata .usect "filter_vars",K_DATA_SIZE
bufferdatay .usect "filter_vars",K_BUFFER_SIZE*2
bufferdatax .usect "filter_vars",K_BUFFER_SIZE*2
.data
.global inputdata
inputdata
.word -921, 5179, 12761, 16169, 17718, 13807, 9693, 4490, -4932, -11094
.word -14092, -15734, -17196, -12558, -8084, -271, 7275, 12467, 16992, 17428
.word 14277, 8293, 3910, -3682, -8972, -12845, -15436, -16361, -13659, -5891
.word -563, 7098, 13015, 17191, 15852, 13360, 11211, 4136, -2577, -9134
.word -15590, -15863, -14322, -12921, -6873, 873, 6591, 11316, 14844, 15833
.word 13096, 9586, 4709, -2066, -11071, -12863, -16280, -15529, -12769, -5070
.word -20, 5897, 10834, 17049, 14897, 14191, 9250, 2675, -2051, -9533
.word -14306, -14850, -17057, -11319, -5779, 1074, 5436, 10589, 16119, 17500
.word 14613, 10404, 4145, -1770, -8358, -15064, -16929, -16071, -12133, -6366
.word 1133, 6375, 13294, 14826, 16017, 14311, 9525, 2709, -4461, -10765
.word -13955, -15304, -17113, -12063, -6669, 1492, 7477, 12354, 16862, 16703
.word 15309, 8515, 2465, -2703, -10842, -15530, -17033, -17211, -12457, -8215
.word 687, 8098, 11323, 14536, 15696, 15457, 10128, 2260, -2813, -10005
.word -14557, -16296, -16738, -11890, -5532, 295, 8156, 12359, 14429, 17877
.word 13890, 8456, 3619, -4219, -9668, -14307, -14784, -16808, -13160, -7257
.word 423, 5440, 12671, 15980, 17287, 13362, 9553, 3043, -4379, -11176
.word -12873, -16536, -16756, -10710, -6958, -1209, 7927, 10839, 14475, 14888
.word 13747, 8821, 2210, -2479, -9777, -14683, -16451, -14570, -10762, -6168
.word -934, 7252, 13515, 14763, 17476, 14094, 9649, 3735, -2366, -8792
.word -14313, -14816, -15148, -12375, -5601, 619, 7326, 13771, 17071, 17445
.word 13498, 9752, 3453, -4706, -9912, -13938, -15061, -15779, -11432, -5454
.word 706, 7649, 12852, 16374, 14718, 15453, 9712, 3286, -4832, -8931
.word -14226, -15745, -14986, -13161, -5299, 1198, 7941, 12319, 14399, 16131
.word 15792, 8698, 3229, -4011, -9583, -12939, -16492, -15698, -11171, -7106
.word -946, 8299, 11040, 16009, 16675, 12552, 7994, 4302, -2662, -10223
.word -14459, -15697, -14991, -13142, -5562, 684
.text
.asg AR2,ORIGIN
.asg AR3,INPUT
.asg AR4,FILTER
.asg AR5,OUTPUT
START:
SSBX FRCT
SSBX INTM
LD #DATA_DP,DP
STM #STACK,SP
CALL filter_start
NOP
NOP
NOP
LOOP
B LOOP
.def b1,b2,b3,a1,a2
.def filter_start
b1 .set 1456H
b2 .set 3D07H
b3 .set 3D07H
b4 .set 1456H
a1 .set -103AH
a2 .set 430FH
a3 .set -1016H
.text
filter_start:
STM #K_CIR,BK
STM #1,AR0
STM #inputdata,ORIGIN
STM #bufferdatax,INPUT
STM #bufferdatay,FILTER
STM #filterdata,OUTPUT
RPT #K_A-1
MVDD *ORIGIN+,*INPUT+0%
STM #bufferdatax,INPUT
RPT #K_A-1
MVDD *INPUT+0%,*FILTER+0%
STM #bufferdatay,FILTER
STM #bufferdatax,INPUT
STM #K_DATA_SIZE-3-1,BRC
RPTB filter_end-1
MVDD *ORIGIN+,*INPUT
RPT #K_B-1-1
MAR *INPUT-0%
MPY *INPUT+0%,#b4,B
LD B,A
MPY *INPUT+0%,#b3,B
ADD B,A
MPY *INPUT+0%,#b2,B
ADD B,A
MPY *INPUT+0%,#b1,B
ADD B,A
MPY *FILTER+0%,#a3,B
ADD B,A
MPY *FILTER+0%,#a2,B
ADD B,A
MPY *FILTER+0%,#a1,B
ADD B,A
STH A,*FILTER-0%
STH A,*OUTPUT+
MAR *FILTER-0%
filter_end: NOP
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -