第四章4.1指令系统剖析.

上传人:今*** 文档编号:107413535 上传时间:2019-10-19 格式:PPT 页数:439 大小:3.72MB
返回 下载 相关 举报
第四章4.1指令系统剖析._第1页
第1页 / 共439页
第四章4.1指令系统剖析._第2页
第2页 / 共439页
第四章4.1指令系统剖析._第3页
第3页 / 共439页
第四章4.1指令系统剖析._第4页
第4页 / 共439页
第四章4.1指令系统剖析._第5页
第5页 / 共439页
点击查看更多>>
资源描述

《第四章4.1指令系统剖析.》由会员分享,可在线阅读,更多相关《第四章4.1指令系统剖析.(439页珍藏版)》请在金锄头文库上搜索。

1、4.1 概述 4.2 汇编语言 4.3 寻址方式,第四章 DSP 指令系统,2019/10/19,4.1 概 述,C54x DSP软件设计的方法通常有三种。 第一种,用C语言开发。TI公司提供了用于C语言开发的CCS(Code Composer Studio)平台。该平台包括了优化ANSI C编译器,从而可以在C源程序级进行开发调试。这种方式的优点是可以增强软件的可读性,提高了软件的开发速度, 方便软件的修改和移植。然而, C编译器无法实现在任何情况下都能够合理地利用DSP芯片的各种资源。此外,对DSP芯片的某些硬件控制,用C语言就不如用汇编程序方便,有些甚至无法用C语言实现。,第二种,用汇编

2、语言开发。此种方式代码效率高,程序执行速度快,可以充分合理地利用芯片提供的硬件资源。然而,用汇编语言编写程序比较烦琐,可读性较差。另外,不同类别或不同公司的芯片汇编语言往往不同,因此可移植性较差。总 之,用汇编语言开发产品,周期长,软件的修改和升级困难。 第三种,C和汇编语言混合编程开发。采用混合编程的方法能更好地达到设计要求,完成设计任务。,4.2 汇 编 语 言,4.2.1 汇编语言源程序格式 汇编语言是DSP应用软件的基础。 编写汇编语言必须要符合相应的格式,这样汇编器才能将源文件转换为机器语言的目标文件。 C54x DSP汇编语言源程序由源说明语句组成,包含汇编语言指令、汇编伪指令、宏

3、伪指令和注释等。,汇编语言语句格式可以包含4个部分:标号域、指令域、操作数域和注释域。以助记符指令为例,汇编语言语句格式如下:标号: 指令操作数列表 ;注释,其中 内的部分是可选项。 在编写汇编指令时,必须遵循以下格式: (1) 语句必须以标号、空格、星号或分号开始。,(2) 标号为可选项。若要使用标号,则必须从第1列开始。标号长度最多为32个字符,由AZ,az,09,_和$等组成,但第1个字符不能为数字。标号后可以跟一个冒号(:),但并不作为标号的一部分。 (3) 每个域必须由1个或多个空格分开,制表符等效于空格。 (4) 注释是可选项,开始于第1列的注释须用星号或分号(*或;)标示,但在其

4、他列开始的注释前面只能标分号。,(5) 指令域一定不能从第1列开始,否则将被视为标号。指令域包括以下操作码之一:助记符指令、汇编伪指令(如.data,.set)、宏伪指令(如.var,.macro)和宏调用。 (6) 操作数域为操作数的列表,汇编器允许指定常数、符号或表达式作为地址、立即数或间接寻址。当操作数为立即数时,使用#符号作为前缀;操作数为间接寻址时,使用*符号作为前缀,将操作数的内容作为地址。,4.2 汇编指令介绍 C54x DSP按指令的功能分类,可分为如下四类: * 数据传送指令; * 算术运算指令; * 逻辑运算指令; * 程序控制指令。,表4.1 指 令 集 符 号,续表一,

5、续表一,续表二,1数据传送指令 数据传送指令把源操作数从源存储器中传送到目的操作数指定的存储器中。C54x DSP的数据传送指令包括装载指令、存储指令、条件存储指令、并行装载和存储指令、并行装载和乘法指令、并行存储和加/减法指令、并行存储和乘法指令、混合装载和存储指令。,1) 装载指令 装载指令是取数或赋值指令,将存储器内容或立即数赋给目的寄存器,共7条指令,如下所示。 (1) DLD 语 法:助记符方式 表达式方式 DLD Lmem,dst dst = dbl(Lmem) dst = dual(Lmem) 执行方式:if C16 = 0 Then (Lmem)dst Else (Lmem(3

6、1-16)dst(39-16) (Lmem(15-0)dst(15-0) 受SXM(符号扩展方式位)的影响。,双16位或双精度,32位,功能描述:该指令只把32 bit的长操作数Lmem装入到目的累加器dst中。C16的值决定了所采用的方式: C16=0 指令以双精度方式执行。Lmem装入到dst中。 C16=1 指令以双16 bit方式执行。Lmem的高16 bit装入到 dst前24 bit中;同时,Lmem的低16 bit装入到dst的 低16 bit中。,例4.1,DLD *AR3+,B,Data Memory,因为该指令是一个长操作指令,所以AR3在执行后加2。,AR3,高有效字,5

7、位位移数,ST1中5位累加器移位方式位,在所有累加器装入操作中都会受到SXM影响,在带有SHIFT或ASM移位的装入操作中只受OVM(ST1中的符号扩展位)的影响;在带有SHIFT或ASM移位的装入指令中影响Ovd(或当dst=src时影响OVsrc-源累加器A或B的溢出标志)。 功能描述:把一数据存储器值或一立即数装入累加器(dst或当没有确定dst时为src),并支持各种不同的移位。另外,指令支持带移位的累加器到累加器的搬移。,例4.2,LD *AR1,A,Data Memory,例4.3,LD *AR1,A,Data Memory,ST1中的符号扩展模式位 SXM=1 溢出,FEDC,例

8、4.4,LD *AR1,TS,B,Data Memory,例4.5,LD *AR3+,16,A,Data Memory,(3) LD 语 法:助记符方式 表达式方式 LD Smem,T T = Smem LD Smem,DP DP = Smem LD # k9,DP DP = # k9 LD # k5,ASM ASM = # k5 LD # k3,ARP ARP = # k3 LD Smem,ASM ASM = Smem,执行过程: (Smem)T (Smem(8-0)DP (9位) k9DP k5ASM k3ARP (Smem(4-0)ASM 不影响任何状态位。,功能描述:把一个数装入T寄存

9、器或状态寄存器ST0或ST1中的DP、ASM和ARP域中。装入的数可以是一个单数据存储器操作数Smem也可以是一个常数。该指令代码为一个字,但当Smem采用了长偏移直接寻址或绝对地址寻址方式时,指令代码为两个字。,例4.6,LD *AR3+,T,Data Memory,例4.7,LD *AR4,DP,Data Memory,1111 1110 DC,例4.8,LD #23,DP,017H,例4.9,LD 15,ASM,0FH,例4.10,LD 3,ARP,例4.11,LD DAT0 ASM,Data Memory,(4) LDM 语 法:助记符方式 表达式方式 LDM MMR,dst dst

10、= MMR dst =mmr(MMR) 执 行过程: (MMR)dst 不影响任何状态位。 功能描述:把存储器映射寄存器-MMR中的值装入到目的累加器dst中。不管DP的当前值或ARx的高9位的值是多少,都把有效地址的高9位清0,以指定为在数据页0中。该指令不受SXM的影响。,例4.12,LDM AR4,A,(5) LDR 语 法:助记符方式 表达式方式 LDR Smem,dst dst = rnd(Smem) 执行过程:(Smem) 16 + 1 15dst(31-16) 受SXM的影响。 功能描述:把单数据存储器操作数Smem左移16 bit后装入目 的累加器dst的高端(3116位)。S

11、mem通过加 再对累加器的低端(150位)清0来凑整。累加器 的第15位置为1。,例4.13,LDR *AR1,A,Data Memory,(6) LDU 语 法:助记符方式 表达式方式 LDU Smem,dst dst = uns(Smem) 执行过程:(Smem)dst(15-0) 00 0000Hdst(39-16) 不影响任何状态位。 功能描述:把单数据存储器值Smem装入目的累加器dst的低端(150位)。dst的保护位和高端(3916位)清0。因此,数据被看成是一个不带符号的16 bit数。不管SXM位的状态如何都无符号扩展。该指令代码占一个字,但当Smem采用长偏移间接寻址或绝对

12、地址寻址方式时就会多占一个字。,例4.14,LDU *AR1,A,Data Memory,(7) LTD 语 法:助记符方式 表达式方式 LTD Smem ltd(Smem) 执行过程:(Smem)T (Smem)Smem + 1 不影响任何状态位。 功能描述:把一个单数据存储器单元的内容Smem复制到T寄存器和紧接着T的数据单元中去。当数据复制完毕后,Smem单元的内容保持不变。这个功能在数字信号处理中实现一个Z延时是相当有用的。该功能在存储器延迟指令中也存在。,例4.15,LTD *AR3,Data Memory,2) 存储指令 存储指令将原操作数或立即数存入存储器或寄存器,共10条指令,

13、 如下所示。 (1) DST 语 法:助记符方式 表达式方式 DST src,Lmem dbl(Lmem)= src dual(Lmem)= src 执行过程:(src(31-0)Lmem 不影响任何状态位。 功能描述:把源累加器的内容放在一个32 bit的长数据存储器单元Lmem中。,例4.16,DST B,*AR3+,Data Memory,(2) ST 语 法:助记符方式 表达式方式 ST T,Smem Smem = T ST TRN,Smem Smem = TRN ST #1k,Smem Smem = #1k 执行过程: (T)Smem (TRN)Smem 1k Smem 该指令不影响

14、任何状态位。 功能描述:把T寄存器的内容,过渡寄存器(TRN)的内容或一个 16 bit常数1 k存放到数据存储器单元Smem中去。,例4.17,ST TRN,DAT5,Data Memory,例4.18,ST T,*AR7-,Data Memory,(3) STH 语 法:助记符方式 表达式方式 STH src,Smem Smem = hi(src) STH src,ASM,Smem Smem = hi(src) ASM STH src,SHFT,Xmem Xmem = hi(src)SHFT STH src,SHIFT,Smem Smem = hi(src) SHIFT 执行过程: (sr

15、c(31-16)Smem (src)(ASM-16)Smem (src)(SHFT-16)Xmem (src)(SHIFT-16)Smem 该指令受SXM影响。,功能描述:把源累加器src的高端(3116位)存放到数据存储器单元Smem中去。Src进行左移,移动位数由ASM、SHFT或SHIFT决定;然后再把移位后的值(3116位)存放到数据存储器单元(Smem或Xmem)中。如果SXM=0,则把src的39位复制到数据存储器单元的最高位。如果SXM=1,就把移位后进行了符号扩展的第39位存放到数据存储器单元的最高位。,例4.19,STH A,DAT10,Data Memory,31-16位,例4.20,STH B,8,*AR7,右移8位为00 FF84 2112,(4) STL 语 法:助记符方式 表达式方式 STL src,Smem

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号