第六部铅分汇编语言程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六部铅分汇编语言程序设计

数字信号处理器 Digital Signal Processor 第六部分 汇编语言程序设计 纪震博士Dr.Ji Zhen Shenzhen Univ.-Texas Instruments DSPs Lab 2003.01 C54x汇编语言程序设计的基本方法 (1)程序的控制与转移 (2)堆栈的使用方法 (3)加、减法和乘法运算 (4)重复操作 (5)数据块传送 (6)双操作数乘法 (7)长字运算和并行运算 (8)小数运算 (9)除法运算 (10)浮点运算 1 程序的控制与转换 1 程序的控制与转换 1 程序的控制与转换 RC TC ;TC=1返回,TC=0继续 CC sub, BNEQ ;B?0,调用sub,B=0继续 BC new, AGT, AOV ;A0且溢出(“与”的关系),转new,否则继续 1 程序的控制与转换 计算y=∑xi (i=1,2,…5) ,主要程序如下: .bss x, 5 .bss y, 1 STM #x, AR1 STM #4, AR2 LD #0, A loop: ADD *AR1+, A BANZ loop,*AR2- STL A, y 1 程序的控制与转换 指定的ARn寄存器(n=1~7)与AR0比较,测试条件成立TC置1 STM #5, AR1 STM #10, AR0 loop: … … MAR *AR1+ … CMPR LT, AR1 BC loop, TC 2 堆栈的使用方法 堆栈的设置: size .set 100 stack .usect STK, size STM #stack+size, SP 堆栈用法: CALL PC+1(N)放入堆栈,SP-1?SP RET 弹出PC,SP+1 ? SP 注意:在链接命令文件中要为堆栈区定位,例如 STK: DARAM PAGE 1 见EXAMPLE.ASM和EXAMPLE.CMD 链接命令文件 example.cmd 链接命令文件 example.cmd(续) example.asm程序清单 example.asm程序清单(续) example.asm程序清单(续) 3 加、减法和乘法运算 3 加、减法和乘法运算 3 加、减法和乘法运算 4 重复操作 C54x有3条重复操作指令: RPT(重复下一条指令) RPTZ(累加器清0并执行下一条指令) RPTB(程序块重复指令) 利用这些指令进行循环,比BANZ指令快 4.1 重复执行单条指令 4.1 关于重复单条指令 重复指令只需取指一次,进行循环比BANZ效率高 重复执行n次,指令中计数值设为n-1 重复操作使多周期指令(MAC、MVDK和MVPD等)变成单周期指令 重复操作期间,CPU不响应中断(RS除外) 4.2 程序块重复操作 程序块重复操作指令RPTB将重复操作的范围扩大到任意长度的循环路,循环开销为0 循环起始地址为下一行的地址 块重复操作前,必须先将迭代次数加载到BRC(块重复计数器) RPTB指令可以响应中断 4.2 程序块重复操作举例 4.2 三重循环嵌套结构举例 4.2 三重循环的开销 5 数据块传送 C54x有10条数据传送指令(见下页中的表), 这些指令的特点如下: 传送速度比加载和存储指令要快; 传送数据不需要通过累加器; 可以寻址程序存储器; 与RPT指令相结合(重复时,这些指令都变成单周期指令),可以实现数据块传送。 5.1 数据传送指令 5.2 程序存储器?数据存储器 5.2 数据存储器?数据存储器 6 双操作数乘法 单周期内通过C总线和D总线寻址两个数据 用间接寻址方式获得操作数,且只能用AR2~AR5 占用的程序空间小 运行的速度快 6.1 MAC型双操作数指令 6.2 单、双操作数乘法的区别 6.3 双操作数乘法(例) 6.3 双操作数乘法(例) 7.长字运算 c54x可以利用长操作数(32位)进行长字运算。长字指令如: DLD Lmem,dst ;dst= Lmem DST src,Lmem ;Lmem = src DADD Lmem ,src[,dst] ;dst= src+Lmem DSUB Lmem ,src[,dst] ;dst= src-Lmem DRSUB L

文档评论(0)

186****0772 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档