?? fir3.asm
字號:
**********************************************************
* 用線性緩沖區和帶移位雙操作數尋址方法實現FIR濾波器 *
*N=5,y(n)=h0*x(n)+h1*x(n-1)+h2*x(n-2)+h3*x(n-3)+h4*x(n-4)*
**********************************************************
.title "fir3.asm"
.mmregs ;定義寄存器名稱及對應地址
.def start ;定義程序入口
;分配數據存儲區
x .usect "x",6 ;y,x(n)...x(n-4)
PA0 .set 0002H ;數據輸出端口
PA1 .set 0008H ;數據輸入端口
.data ;參數表
COEF:
.word 1*32768/10 ;h4
.word -4*32768/10 ;h3
.word 3*32768/10 ;h2
.word -4*32768/10 ;h1
.word 1*32768/10 ;h0
.text
start: SSBX FRCT ;小數乘法
STM #x+2,AR1 ;把x(1)-x(n-4)賦初值0
RPT #3
ST #0,*AR1+
STM #x+5,AR1 ;AR1-->x(n-4)
STM #4,AR0 ;AR0的復位值
LD #x+1,DP
PORTR PA1,@x+1 ;輸入x(n)
FIR3: RPTZ A,#4 ;累加器A清0,共迭代5次
MACD *AR1-,COEF,A ;乘法累加并移位
STH A,*AR1 ;暫存y(n)
PORTW *AR1+,PA0 ;輸出y(n)
BD FIR3 ;循環
PORTR PA1,*AR1+0 ;輸入新的數據x(n),AR1指向x(n-4)
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -