和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt

上传人:scccc 文档编号:14072939 上传时间:2022-02-01 格式:PPT 页数:16 大小:552.50KB
返回 下载 相关 举报
和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt_第1页
第1页 / 共16页
和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt_第2页
第2页 / 共16页
和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt_第3页
第3页 / 共16页
和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt_第4页
第4页 / 共16页
和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt》由会员分享,可在线阅读,更多相关《和16DSP原理及应用——TMS320C54x的汇编语言程序设计第116次课讲课件.ppt(16页珍藏版)》请在三一文库上搜索。

1、第5章 TMS320C54x的汇编语言程序设计,5.5 重复操作程序5.6 数据块传送程序5.7 小数运算程序5.8 浮点运算程序,5.5 重复操作程序,.bss x, 8 STM #x, AR1 LD #0, A RPT #7 STL A,*AR1+,.bss x, 8 STM #x, AR1,RPTZ A, #7 STL A, *AR1+,注意:, 对x8中的8个元素置0,重复次数为7,即执行1次STL A,AR1+指令后,再重复执行7次;, RPTZ指令设定重复次数后,再对累加器清零。,【例5.5.1】对数组进行初始化,使x8=0,0,0,0,0,0,0,0。,单指令重复操作程序示例:,

2、块重复操作:,【例5.5.2】对数组x8中的每一元素加1。,块指令重复操作程序示例:,.bss x, 8begin: LD #1,16,B STM #7,BRC STM #x,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+next: LD #0,B ,;设置数组空间;立即数1送入BH;设置重复次数,BRC=7,循环8次;数组首地址x送入AR4;设置循环结束地址;数组数据左移16位与BH相加;存入数组结果,并修改地址;B清0,注 意 块结束地址REA通常取程序块最后一条指令的下一条指令地址-1; 重复次数为7次 RPTB指令可以响应中断。,5.6 数据块传

3、送程序,5.6 数据块传送程序,5.7 小数运算程序,定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。,定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。十进制小数的2的补码表示正数:乘以32768;负数:绝对值乘32768,再取反加1。,0.5,4000H,-0.5,4000H,-1,8000H,乘以32768,C000H,8000H,5.7 小数运算程序,小数乘法设字长为4位(累加器为8位),有如下小数乘法:0.625-0.125,乘积结果为7位

4、,送入累加器;为保持乘积的符号不变,必须进行符号位扩展;因而,经过符号扩展后累加器内容为8位:11101000(-0.1865)出现了冗余的符号位(两个符号位)!怎么办?,ST1的FRCT小数方式控制位,可以控制乘积结果在送往累加器前是否自动左移1位!如FRCT=1,则可自动消去两个符号位中冗余的一个。,5.7 小数运算程序,【例5.7.1】求 ,数据全为小数。 a1=0.3,a2=0.2,a3=-0.4,a4=0.1 x1=0.6,x2=0.5,x3=-0.1,x4=-0.2,5.7 小数运算程序,分析存储空间要求?采用何种指令?小数如何表示?冗余符号位的消去:,需预留9个存储单元 典型的乘

5、-累加运算:MAC与RPT指令结合 0.3=3*32768/10 SSBX FRCT,5.7 小数运算程序,.title Ex_571.asm.mmregsstack.usectSTACK, 10H.bssa,4.bssx,4.bssy,1.defstart.datatable:.word3*32768/10,2*32768/10,- 4*32768/10,1*32768/10.word6*32768/10,5*32768/10,-1*32768/10,-2*32768/10,.textstart: SSBX FRCTSTM#a, AR1RPT#7MVPDtable, *AR1+STM#a,

6、AR3STM#x, AR4RPTZA, #3MAC*AR3+, *AR4+, A STHA, ydone: Bdone.end,只能最多用到AR5,教材代码有误!,浮点数的表示包含尾数和指数两部分如:定点数0 x2000(0.25)用浮点数表示时,尾数为0 x4000(0.5),指数为1,即0.52-1;尾数和指数都可正可负:尾数符号表示浮点数的正负,指数的符号表示浮点数的绝对值大小。定点数转换成浮点数Step1: EXP AStep2: ST T, EXPONENTStep3: NORM A,定点数=尾数2-指数,5.8 浮点运算程序,5.8 浮点运算程序,浮点数转换为定点数将尾数按指数值进

7、行左移(指数为负)或右移(指数为正)浮点运算举例编写浮点运算程序,完成x1*x2=0.4*(-0.9)。分析:首先确定需要分配的存储单元确定需要用到的关键指令流程图,.title Ex_581.asm.mmregsstack.usectSTACK, 100H.bssa, 2.bssb, 2.bssc, 2.bssep, 1.bssmp, 1.bssproduct, 1.bsstemp, 1.defstart.datatable:.word4*32768/10,-9*32768/10.textstart:STM#stack+100, SPMVPDtable, aMVPDtable+1, a+1LDa, 16, AEXPASTT, bNORMASTHA, cLDa+1, 16, AEXPASTT, b+1,NORMASTHA, c+1CALLMULTdone:BdoneMULT:SSBXFRCTSSBXSXMLDb, AADDb+1, ASTLA, epLDc, TMPYc+1, AEXPASTT, tempNORMASTHA, mpLDtemp, AADDep, ASTLA, epNEGASTLA, tempLDtemp, TLDmp, 16, ANORMASTHA, productRET.end,浮点运算实现代码,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1