📄 iir.asm
字号:
.title "iir.asm"
.copy "init.h"
.copy "vector.h"
.def start
; .data
B0 .equ 60h
B1 .equ 61h
B2 .equ 62h
B3 .equ 63h
B4 .equ 64h
A1 .equ 65h
A2 .equ 66h
A3 .equ 67h
A4 .equ 68h
Y0 .equ 69h
Y1 .equ 6Ah
Y2 .equ 6Bh
Y3 .equ 6Ch
Y4 .equ 6Dh
W0 .equ 6Eh
W1 .equ 6Fh
W2 .equ 70h
W3 .equ 71h
W4 .equ 72h
.data
INPUT .copy "testdata.dat" ;模拟输入在数据存储区0x300
OUTPUT .sect "output" ;输出数据在数据区0x2000
.space 128*16 ;K_FRAME_SIZE*16 ;
.text
start:
SETC INTM
LDP #0
;滤波器系数的分子系数b0=02Ah,b1=0A9h,b2=0FEh,b3=0A9h,b4=02Ah。
SPLK #02Ah,60h ;bi
SPLK #0A9h,61h
SPLK #0FEh,62h
SPLK #0A9h,63h
SPLK #02Ah,64h
;滤波器系数的分母系数-a1=4ABEh,-a2=0B7A8h,-a3=20BBh,-a4=0FA38h
SPLK #4ABEh,65h ;ai
SPLK #0B7A8h,66h
SPLK #20BBh,67h
SPLK #0FA38h,68h
SPLK #00h,69h ;yi
SPLK #00h,6Ah
SPLK #00h,6Bh
SPLK #00h,6Ch
SPLK #00h,6Dh
SPLK #00h,6Eh ;wi
SPLK #00h,6Fh
SPLK #00h,70h
SPLK #00h,71h
SPLK #00h,72h
LAR AR3,#127
LAR AR2,#2000h ;#800h output adddr
LAR AR1,#300h ;input addr
;LACL #111b
;SACL 73h
;OUT 73h,PMST
LOOP: SOVM
LARP 1
LACC *+
SACL W0
ZAC
LT W4
MPY B4
LTD W3
MPY B3
LTD W2
MPY B2
LTD W1
MPY B1
LTD W0
MPY B0
APAC
LT Y4
MPY A4
LTD Y3
MPY A3
LTD Y2
MPY A2
LTD Y1
MPY A1
APAC
SACH Y0,3
DMOV Y0
LARP 2
SACH *+,3
LARP 3
BANZ LOOP,*-,AR1
HERE: B HERE
inpt1: ret ; Unused interrupt routines
inpt23: ret
timer: ret
codtx: ret
codrx: ret
uart: ret
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -