汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt

上传人:牧羊曲112 文档编号:6475882 上传时间:2023-11-03 格式:PPT 页数:31 大小:1.31MB
返回 下载 相关 举报
汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt_第1页
第1页 / 共31页
汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt_第2页
第2页 / 共31页
汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt_第3页
第3页 / 共31页
汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt_第4页
第4页 / 共31页
汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计《TMS320C54XDSP结构、原理及应用》.ppt(31页珍藏版)》请在三一办公上搜索。

1、第六章 汇编语言程序设计,主讲:胡文静 博士,2023/11/3,2,概述,汇编语言源程序格式:助记符指令一般包含4个部分,其一般组成形式为:标号:助记符 操作数;注释 书写格式规则详见P138,!标号所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多32个字符;由字母、数字、下划线和$组成,且不能以数字开头;分大小写;冒号不属于标号名;没有标号的源语句第一列必须为空格、星号或分号。助记符不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以“.”开头。操作数操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用“,”号隔开;

2、三种前缀形式:#,*,。,2023/11/3,3,常数与字符串,2023/11/3,4,标号,2023/11/3,5,举例,2023/11/3,6,汇编语言表达式,2023/11/3,7,有效定义表达式:,2023/11/3,8,有效定义表达式,2023/11/3,9,堆栈操作,2023/11/3,10,控制程序,2023/11/3,11,分支操作,2023/11/3,12,分支操作,2023/11/3,13,分支操作,2023/11/3,14,循环操作,.title Ex534.asm.mmregsstack.usectSTACK,10h.bssx,10.bssy,1table:.word1

3、,2,3,4,5,6,7,8,9,10.defstartstart:STM#0,SWWSRSTM#stack+10h,SPCALLinitSTM#x,AR1STM#9,AR2LD#0,Aloop:ADD*AR1+,ABANZloop,*AR2-STLA,yB$init:STM#x,AR1RPT#9MVPDtable,*AR1+RET.end,2023/11/3,15,算术运算程序,2023/11/3,16,加法/减法,2023/11/3,17,算术运算,2023/11/3,18,2023/11/3,19,重复操作程序,2023/11/3,20,块重复操作,2023/11/3,21,数据块传送程

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

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

6、结合0.3=3*32768/10SSBXFRCT,2023/11/3,27,实现源代码,.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:SSBXFRCTSTM#a,AR1RPT#7MVPDtable,*AR1+STM#a,AR3STM#x,AR4RPTZA,

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

8、正)浮点运算举例编写浮点运算程序,完成x1*x2=0.4*(-0.9)。分析:首先确定需要分配的存储单元确定需要用到的关键指令流程图,2023/11/3,30,浮点运算实现代码,.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,2023/11/3,31,本章小结,汇编语言程序格式常数与字符串、标号汇编语言表达式常用程序结构算术运算,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号