📄 fir.asm
字号:
.title "fir.asm"
.mmregs
.global _c_int00
;PA0 .set 0
;PA1 .set 1
size .set 14
x_new .usect "NewData", 14
x_old .usect "OldData", 14
input .usect "NewData2", 100
output .usect "OldData2", 100
;.bss y,1
.bss count, 1
.data
COEF: .word 32768*17/10000 ; H0----H27
.word 32768*229/10000
.word -32768*315/10000
.word -32768*110/10000
.word -32768*224/10000
.word 32768*205/10000
.word -32768*215/10000
.word -32768*383/10000
.word 32768*140/10000
.word 32768*659/10000
.word -32768*98/10000
.word -32768*1190/10000
.word 32768*1005/10000
.word 32768*4908/10000
.text
_c_int00:
ld #0, a
stm #x_new, ar2
rpt #13
stl a, *ar2+
stm #x_old, ar2
rpt #13
stl a, *ar2+ ;清零
;ld #y, DP
st #0, *(count)
ssbx frct ;小数乘法
stm #size, bk
stm #-1, ar0
stm #x_new, ar2 ;ar2指向x_new最上面的值
stm #x_old+(size-1),ar3 ;ar3指向x_old最下面的值
stm #input, ar4
stm #output, ar5
;portr PA1, *ar2
mvdd *ar4+, *ar2
FIR: add *ar2+0%, *ar3+0%, a
rptz b, #(size-1)
firs *ar2+0%, *ar3+0%, COEF
ld #0 ,a
;sth b, @y
;portw @y, PA0
sth b, *ar5+
mar *+ar2(2)%
nop
mar *ar3+%
mvdd *ar2, *ar3+0%
addm #1, *(count)
cmpm *(count),100
bc done, tc
bd FIR
;portr PA1, *ar2
mvdd *ar4+, *ar2
nop
done: b done
.sect "VECTORS"
reset:
b _c_int00
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -