1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP 第15讲.ppt

第十四讲复习 程序控制与转移:条件算符,BANZ,CMPR 堆栈使用:堆栈的设置,堆栈的操作,堆栈大小的确定 实验问题 汇编语言程序设计(2) 授课内容: 1.加减和乘加运算 2.重复操作 3.数据块传送 加、减法和乘法运算(1) 加、减法和乘法运算(2) 加、减法和乘法运算(3) 加、减法和乘法运算(4) 例4:计算 z=x+y-w LD @x,A ADD @y,A SUB @w,A STL A,@z 加、减法和乘法运算(5) 例5:计算y=mx+b LD @m,T MPY @x,A ADD @b,A STL A,@y 加、减法和乘法运算(6) 例6:计算y=a1*x1+a2*x2 LD @x1,T MPY @a1,B LD @x2,T MAC @a2,B STL B,@y STH B,@y+1 加、减法和乘法运算(7) 加、减法和乘法运算(8) 例8:求四项乘积项aixi(i=1,2,3,4)的最大值。 STM #a,AR1 STM #x,AR2 STM #2,AR3 LD *AR1+,T MPY *AR2+,A Loop: LD *AR1+,T MPY *AR2+,B MAX A ;能使用CMPR不? BANZ Loop,*AR3- 重复操作(1) 重复指令包括单指令重复和多指令重复,可用于乘累加、块数据移动等操作过程,以增加指令执行速度。在重复指令第一次执行之后,多周期指令会变为单周期指令。 重复指令共有3条:RPT,RPTZ,RPTB。 重复操作(2) 1). 单指令重复 重复指令 RPT和RPTZ 允许重复执行紧随其后的那一条指令。如果要重复执行n次,则重复指令中应规定计数但为n-1 。 由于要重复的指令只需要取指一次 , 与利用 BANZ 指令 进行循环相比 , 这两条效率要高得多。对于多周期指令,在执行一次之后就变成了单周期指令 , 大大提高了运行速度。 重复操作(3) 例9:对数组进行初始化,令x[5]=(0,0,0,0,0} .bss x,5 STM #x,AR1 LD #0 ,A RPT #4 STL A, *AR1+ 另一种实现方法: .bss x,5 STM #x,AR1 RPTZ A,#4 STL A, #AR1+ 重复操作(4) 2). 块程序重复操作 块程序重复操作指令RPTB将重复操作的范围扩大到任意长度的循环回路。 由于块程序重复指令RPTB的操作数是循环回路的结束地址, 其下条指令就是重复操作的内容,因此必须先将所规定的迭代次数加载到块重复计数器 (BRC)。 RPTB指令的特点是:对任意长的程序段的循环开销为0。 重复操作(5) 例2:对数据组x[5]中的每个元素加1。 .bss x,5 Begin: LD #1,16,B STM #4,BRC STM #x,AR4 RPTB Next-l ADD *AR4,16,B,A STH A, *AR4+ Next: LD #0 ,B 重复操作(6) 3). 循环的嵌套 执行 RPT 指令时用到了 RPTC 寄存器 (重复计数器); 执行RPTB指令时要用到BRC(块重复计数器)、RSA (块重复起始地址寄存器) 和 RSE (块重复结束地址寄存器) 。 由于两者用了不间的寄存器 ,因此 RPT 指令可以嵌套在 RPTB 指令中,实现循环的嵌套。 当然 , 只要保存好有关的寄存器 ,RPTB 指令也可以嵌套在另一套 RPTB 指令中 ,但效率并不高。 重复操作(7) 下图所示的程序框架实现三重循环嵌套结构,内层、中层和外层三重循环分别采用RPT、RPTB和BANZ 指令, 重复执行N、M和L次。 数据块传送(1) ’C54x 有 10 条数据传送指令。这些指令的特点如下 : 传送速度比加载和存储指今快 传送数据不需要通过累加器 可以寻址程序存储器 与 RPT 指令相结合(重复时,这些指令都变成单周期指令), 可以实现数据块传送。 数据块传送(2) 1). 程序存储器→数据存储器 重复执行 MVPD 指令,实现程序存储器至数据存储器的数据传送,在系统初始化过程中,可以将数据表格与文本一道驻留在程序存储器中,复位后将数据表格传送到数据存储器 ,从而不需要配置数据 ROM,使系统的成本降低。 数据块传送(3)

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档