⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir3.asm

📁 这里面有很多dsp应用程序源码
💻 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 + -