DSP第16讲.ppt

DSP第16讲.ppt

ID:48822213

大小:2.57 MB

页数:50页

时间:2020-01-29

DSP第16讲.ppt_第1页
DSP第16讲.ppt_第2页
DSP第16讲.ppt_第3页
DSP第16讲.ppt_第4页
DSP第16讲.ppt_第5页
资源描述:

《DSP第16讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DSP技术及应用教学课件DSP技术及应用第十六讲汇编程序设计(2)汇编程序设计(2)授课内容:1.双操作数乘法2.长字运算和并行运算3.小数运算4.除法运算5.浮点运算汇编程序设计(2):双操作数乘法1.双操作数乘法在利用MAP指令进行乘法操作中,即可应用MPYSmem,dst等单操作数形式,也可利用MPYXmem,Ymem,dst等双操作数形式。采用双操作数指令编程的特点是:采间接寻址方式获得操作数,且辅助寄存器只能用AR2~AR5占用的程库空间小程序运行速度快例如,计算y=mx+b可用两种方法实现:双操作数乘法单操作数乘法:LD@m,TMPY@x,AADD@b,A

2、STLA,@y双操作数乘法:MPY*AR2,*AR3,AADD@b,ASTLA,@y双操作数乘法在重复操作中,利用双操作数运算,可以明显提高运算效率,节约计算时间。例如,计算乘累加式就可采用不同的指令实现:双操作数乘法1).单操作数指令实现LD#0,BSTM#a,AR2STM#x,AR3STM#19,BRCRPTBdone-1LD*AR2+,TMPY*AR3+,A;单操作数指令ADDA,B;每重复一次用3个周期Done:STHB,@ySTLB,@y+1双操作数乘法2).双操作数指令实现LD#0,BSTM#a,AR2STM#x,AR3STM#19,BRCRPTBdone

3、-1MPYAR2+,*AR3+,A;单操作数指令ADDA,B;每重复一次用3个周期Done:STHB,@ySTLB,@y+1双操作数乘法利用单操作数指令进行乘法累加运算,完成N项乘积求和,需要3N个机器周期;利用双操作数指令进行相同的运算,需要2N个机器周期,共可节约N个机器周期。充分利用DSP的丰富指令,可以对上述算法进一步优化,完成一个N项乘积求和的操作,只需要N+2个机器周期。程序如下:双操作数乘法STM#x,AR2STM#a,AR3RPTZA,#19MAC*AR2+,*AR3+,A;单周期指令STHB,@ySTLB,@y+1汇编程序设计(2):长字运算和并行运

4、算2.长字运算和并行运算1).长字运算‘C54x中可以利用长操作数(32位)进行长字运算的指令主要有:DLDLmem,dst;dst=LmemDSTsrc,Lmem;Lmem=srcDADDLmem,src[,dst];dst=src+LmemDSUBLmem,src[,dst];dst=src-LmemDRSUBLmem,src[,dst];dst=Lmem-src长字运算和并行运算在长操作数指令指令中,必须注意高16位和低16位操作数在存储器中的排列问题。指令系统中规定:按指令中给出的地址进行存取的总是高16位操作数。这样,就有两种数据排列方法:长字运算和并行运算

5、偶地址排列法:指令中给出的地址为偶地址,即存储器中低地址存放高16位操作数。例如:DLD*AR3+,A指令执行前:指令执行后:A=0000000000A=006CACBD90AR3=0100AR3=0102(0100H)=6CAC(高字)(0100H)=6CAC(0101H)=BD90(低字)(0101H)=BD90长字运算和并行运算奇地址排列法:指令中给出的地址为奇地址,即存储器中低地址存放低16位操作数。例如:DLD*AR3+,A指令执行前:指令执行后:A=0000000000A=00BD906CACAR3=0101AR3=0103(0100H)=6CAC(低字)

6、(0100H)=6CAC(0101H)=BD90(高字)(0101H)=BD90长字运算和并行运算例1:计算Z32=X32+Y32标准运算实现长字运算实现LD@xhi,16,ADLD@xhiADDS@xlo,ADADD@yhi,AADD@yhi,16,ADSTA,@zhiADDS@ylo,ASTHA,@zhiSTLA,@zlo长字运算和并行运算2).并行运算并行指令有4种:并行加载和乘法指令,并行加载和存储指令,并行存储和乘法指令,以及并行存储和加/减法指令。所有并行指令都是单字单周期指令。注意:并行运算时存储的是前面的运算结果,存储之后再进行加载或算术运算。这些指令

7、都工作在累加器的高位,且大多数并行运算指令都受ASM(累加器移位方式)位影响。长字运算和并行运算例2:计算z=x+y和f=e+d设数据如右图存放,则程序段为:(并行加载和存储指令语法).bssx,3.bssd,3STM#x,AR5STM#d,AR2LDAR5+,16,A;x进入A高位ADDAR5+,16,A;y与A高位相加STA,#AR5;Z=A>>16

8、

9、LD*AR2+,B;e进入B高位ADD*AR2+,16,B;d与B高位相加STHB,*AR2;f=BH长字运算和并行运算3).64位加法和减法运算利用双字指令,可以实现多位字的计算。例3:计算Z6

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。