- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP原理及应用第五章.ppt
练习:将数组x[5] 初始化为{1,2,3,4,5}。并将数组中的每个元素加1。 .title “lx.asm” ;为汇编源程序取名 .mmregs ;定义存储器映象寄存器 .bss x,5 ;为数组x分配5个存储单元 .data table: .word 1,2,3,4,5 .def start ;定义标号start .text start: STM #x,AR1 RPT #4 ;设定重复传送的次数为5次 MVPD table,*AR1+ LD #1, 16, B STM #4,BRC STM #x,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+ next: B next .end * 例5-29 设计对称FIR滤波器(N=8)。 .title “FIR5.ASM” ;给汇编程序取名 .mmregs ;定义存储器映象寄存器 .def start ;定义标号start的起始位置 .bss y,1 ;为未初始化变量y保留空间 x_new .usect “DATA1”,4 ;自定义4个单元的未初始化段DTAT1 x_old .usect “DATA2”,4 ;自定义4个单元的未初始化段DATA2 size .set 4 ;定义符号size=4 PA0 .set 0 ;设置数据输出端口I/O,PA0=0 PA1 .set 1 ;设置数据输入端口I/O,PA1=1 .data COEF .word 1*32768/10,2*32768/10;系数对称,只需 .word 3*32768/10,4*32768/10 ;给出N/2=4个系数 * .text start: LD #y,DP ;设置数据存储器页指针的起始位置 SSBX FRCT ;小数乘法 STM #x_new,AR2 ;AR2指向新缓冲区第1个单元 STM #x_old+(size-1),AR3 ;AR3指向老缓 ;冲区最后1个单元 STM #size,BK ;设置循环缓冲区长度BK =size STM #-1,AR0 ;循环控制增量AR0=-1 PORTR PA1,#x_new ;从I/O输入端口PA1 ;输入数据到x(n) * FIR5: ADD *AR2+0%,*AR3+0%,A ;AH=x(n)+ ;x(n-7)(第一次) RPTZ B,#(size-1) ;B=0,下条指令执行size次 FIRS *AR2+0%,*AR3+0%,COEF ;B+=AH*h0, ;AH=x(n-1)+x(n-6)… STH B,@y ;保存结果到y PORTW @y,PA0 ;输出结果到PA0 MAR *+AR2(2)% ;修正AR2,指向新缓 ; 冲区最老的数据 MAR *AR3+% ;修正AR3,指向老缓 ;冲区最老的数据 MVDD *AR2,*AR3+0
文档评论(0)