欢迎来到天天文库
浏览记录
ID:33471437
大小:3.71 MB
页数:547页
时间:2018-05-25
《tms320c54xtm_dsp汇编语言与混合编程课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章TMS320C54xTMDSP汇编语言与混合编程4.1概述4.2汇编语言4.3C54xDSP的C语言编程及混合编程习题4.1概述C54xDSP软件设计的方法通常有三种。第一种,用C语言开发。TI公司提供了用于C语言开发的CCS(CodeComposerStudio)平台。该平台包括了优化ANSIC编译器,从而可以在C源程序级进行开发调试。这种方式的优点是可以增强软件的可读性,提高了软件的开发速度,方便软件的修改和移植。然而,C编译器无法实现在任何情况下都能够合理地利用DSP芯片的各种资源。此外,对DSP芯片的某些硬件控制,用C语言就不如用汇编程序方便,有些甚至无法用C语言实现。第二种
2、,用汇编语言开发。此种方式代码效率高,程序执行速度快,可以充分合理地利用芯片提供的硬件资源。然而,用汇编语言编写程序比较烦琐,可读性较差。另外,不同类别或不同公司的芯片汇编语言往往不同,因此可移植性较差。总之,用汇编语言开发产品,周期长,软件的修改和升级困难。第三种,C和汇编语言混合编程开发。采用混合编程的方法能更好地达到设计要求,完成设计任务。4.2汇编语言4.2.1汇编语言源程序格式汇编语言是DSP应用软件的基础。编写汇编语言必须要符合相应的格式,这样汇编器才能将源文件转换为机器语言的目标文件。C54xDSP汇编语言源程序由源说明语句组成,包含汇编语言指令、汇编伪指令、宏伪指令和注释等
3、,一般一句程序占据编辑器的一行。由于汇编器每行最多只能读200个字符,因此源语句的字符数不能超过200个,一旦长度超过200个字符,汇编器将自行截去行尾的多余字符并给出警告信息。如果截去的是注释,那么不影响程序的正确执行;但如果截去了语句的执行部分,则程序会编译出错或错误执行。汇编语言语句格式可以包含4个部分:标号域、指令域、操作数域和注释域。以助记符指令为例,汇编语言语句格式如下:[标号][:]指令[操作数列表][;注释],其中[]内的部分是可选项。在编写汇编指令时,必须遵循以下格式:(1)语句必须以标号、空格、星号或分号开始。(2)标号为可选项。若要使用标号,则必须从第1列开始。标号长
4、度最多为32个字符,由A~Z,a~z,0~9,_和$等组成,但第1个字符不能为数字。标号后可以跟一个冒号(:),但并不作为标号的一部分。(3)每个域必须由1个或多个空格分开,制表符等效于空格。(4)注释是可选项,开始于第1列的注释须用星号或分号(*或;)标示,但在其他列开始的注释前面只能标分号。(5)指令域一定不能从第1列开始,否则将被视为标号。指令域包括以下操作码之一:助记符指令、汇编伪指令(如.data,.set)、宏伪指令(如.var,.macro)和宏调用。(6)操作数域为操作数的列表,汇编器允许指定常数、符号或表达式作为地址、立即数或间接寻址。当操作数为立即数时,使用#符号作为前
5、缀;操作数为间接寻址时,使用*符号作为前缀,将操作数的内容作为地址。4.2.2汇编指令介绍C54xDSP按指令的功能分类,可分为如下四类:*数据传送指令;*算术运算指令;*逻辑运算指令;*程序控制指令。表4.1指令集符号续表一续表一续表二1.数据传送指令数据传送指令把源操作数从源存储器中传送到目的操作数指定的存储器中。C54xDSP的数据传送指令包括装载指令、存储指令、条件存储指令、并行装载和存储指令、并行装载和乘法指令、并行存储和加/减法指令、并行存储和乘法指令、混合装载和存储指令。1)装载指令装载指令是取数或赋值指令,将存储器内容或立即数赋给目的寄存器,共7条指令,如下所示。(1)DL
6、D语法:助记符方式表达式方式DLDLmem,dstdst=dbl(Lmem)dst=dual(Lmem)执行方式:ifC16=0Then(Lmem)→dstElse(Lmem(31-16))→dst(39-16)(Lmem(15-0))→dst(15-0)受SXM的影响。功能描述:该指令只把32bit的长操作数Lmem装入到目的累加器dst中。C16的值决定了所采用的方式:C16=0指令以双精度方式执行。Lmem装入到dst中。C16=1指令以双16bit方式执行。Lmem的高16bit装入到dst前24bit中;同时,Lmem的低16bit装入到dst的低16bit中。例4.1DLD*A
7、R3+,BDataMemory因为该指令是一个长操作指令,所以AR3在执行后加2。在所有累加器装入操作中都会受到SXM影响,在带有SHIFT或ASM移位的装入操作中只受OVM的影响;在带有SHIFT或ASM移位的装入指令中影响Ovd(或当dst=src时影响OVsrc)。功能描述:把一数据存储器值或一立即数装入累加器(dst或当没有确定dst时为src),并支持各种不同的移位。另外,指令支持带移位的累加器到累加器的搬移。
此文档下载收益归作者所有