




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 tms320c54xtm dsp汇编语言与混合编程 第4章 tms320c54xtm dsp汇编语言与混合编程 4.1 概述概述 4.2 汇编语言汇编语言 4.3 c54x dsp的的c语言编程及混合编程语言编程及混合编程 习习 题题 第4章 tms320c54xtm dsp汇编语言与混合编程 4.1 概概 述述 c54x dsp软件设计的方法通常有三种。 第一种,用c语言开发。ti公司提供了用于c语言开发的 ccs(code composer studio)平台。该平台包括了优化ansi c编 译器,从而可以在c源程序级进行开发调试。这种方式的优点是 可以增强软件的可读性,提高了软件
2、的开发速度, 方便软件的修 改和移植。然而, c编译器无法实现在任何情况下都能够合理地 利用dsp芯片的各种资源。此外,对dsp芯片的某些硬件控制, 用c语言就不如用汇编程序方便,有些甚至无法用c语言实现。 第4章 tms320c54xtm dsp汇编语言与混合编程 第二种,用汇编语言开发。此种方式代码效率高,程序执 行速度快,可以充分合理地利用芯片提供的硬件资源。然而, 用汇编语言编写程序比较烦琐,可读性较差。另外,不同类别 或不同公司的芯片汇编语言往往不同,因此可移植性较差。总 之,用汇编语言开发产品,周期长,软件的修改和升级困难。 第三种,c和汇编语言混合编程开发。采用混合编程的方法 能
3、更好地达到设计要求,完成设计任务。 第4章 tms320c54xtm dsp汇编语言与混合编程 4.2 汇汇 编编 语语 言言 4.2.1 汇编语言源程序格式汇编语言源程序格式 汇编语言是dsp应用软件的基础。编写汇编语言必须要符合 相应的格式,这样汇编器才能将源文件转换为机器语言的目标 文件。c54x dsp汇编语言源程序由源说明语句组成,包含汇编 语言指令、汇编伪指令、宏伪指令和注释等,一般一句程序占 据编辑器的一行。由于汇编器每行最多只能读200个字符,因此 源语句的字符数不能超过200个,一旦长度超过200个字符,汇 编器将自行截去行尾的多余字符并给出警告信息。如果截去的 是注释,那么
4、不影响程序的正确执行;但如果截去了语句的执 行部分,则程序会编译出错或错误执行。 第4章 tms320c54xtm dsp汇编语言与混合编程 汇编语言语句格式可以包含4个部分:标号域、指令域、操 作数域和注释域。以助记符指令为例,汇编语言语句格式如下: 标号: 指令操作数列表 ;注释,其中 内的部分是可 选项。 在编写汇编指令时,必须遵循以下格式: (1) 语句必须以标号、空格、星号或分号开始。 第4章 tms320c54xtm dsp汇编语言与混合编程 (2) 标号为可选项。若要使用标号,则必须从第1列开始。 标号长度最多为32个字符,由az,az,09,_和$等组成, 但第1个字符不能为数
5、字。标号后可以跟一个冒号(:),但并不 作为标号的一部分。 (3) 每个域必须由1个或多个空格分开,制表符等效于空格。 (4) 注释是可选项,开始于第1列的注释须用星号或分号(* 或;)标示,但在其他列开始的注释前面只能标分号。 第4章 tms320c54xtm dsp汇编语言与混合编程 (5) 指令域一定不能从第1列开始,否则将被视为标号。指 令域包括以下操作码之一:助记符指令、汇编伪指令 (如.data,.set)、宏伪指令(如.var,.macro)和宏调用。 (6) 操作数域为操作数的列表,汇编器允许指定常数、符号 或表达式作为地址、立即数或间接寻址。当操作数为立即数时, 使用#符号作
6、为前缀;操作数为间接寻址时,使用*符号作为前 缀,将操作数的内容作为地址。 第4章 tms320c54xtm dsp汇编语言与混合编程 4.2.2 汇编指令介绍汇编指令介绍 c54x dsp按指令的功能分类,可分为如下四类: * 数据传送指令; * 算术运算指令; * 逻辑运算指令; * 程序控制指令。 第4章 tms320c54xtm dsp汇编语言与混合编程 表表4.1 指指 令令 集集 符符 号号 符 号 说 明 符 号 说 明 a 累加器 a n xc 指令操作数。n=1 表示 1 条指令 执行;n=2 表示 2 条指令执行 alu 算术逻辑单元 n 指定 rsbx/ssbx/xc 指
7、令中修改的 状态寄存器。n=0,状态寄存器 st0; n=1,状态寄存器 st1 ar 辅助寄存器 ova st0 中的累加器 a 的溢出标志 arx 指定的辅助寄存器(0 x7) ovb st0 中的累加器 b 的溢出标志 arp st0 中的辅助寄存器指针域,3 位域 指针指向当前的辅助寄存器(ar) ovdst 目的累加器(a 或 b)的溢出标志 asm st1 中的 5 位累加器移位模式域 (-16asm15) ovdst_ 与当前目的累加器相反的累加器的 溢出标志 b 累加器 b ovsrc 源累加器(a 或 b)的溢出标志 braf st1 中的块重复有效标志 ovm st1 中的
8、溢出模式位 brc 块重复计数器 pa 16 位立即数表示的端口地址 (0pa65535) 第4章 tms320c54xtm dsp汇编语言与混合编程 续表一 符号 说 明 符号 说 明 bitc 4 位值,用于确定位测试指令对指定 数据存储器的哪一位进行测试 par 程序地址寄存器 c16 st1 中的双 16 位/双精度算术模式位 pc 程序计数器 c st0 中的进位位 pmad 16 位立即数表示的程序存储器地址 (0pa65 535) cc 2 位的条件代码 pmem 程序存储器操作数 cmpt st1 中的兼容模式位 pmst 处理器模式状态寄存器 cpl st1 中的编译模式位
9、prog 程序存储器操作数 cond 条件执行指令所用的条件 r 舍入(凑整)选项 d,d 延迟方式的选项 rnd 舍入 dab 地址总线 rc 循环计数器 dar dab 地址寄存器 rtn 在 retfd指令中使用的快速返回 寄存器 dmad 16 位立即数表示的数据存储器地址 (0dmad65 535) rea 块循环尾地址寄存器 第4章 tms320c54xtm dsp汇编语言与混合编程 续表一 dmem 数据存储器操作数 rsa 块循环起始地址寄存器 dp st0 中的 9 位数据存储器页指针域 sbit 4 位域指示在 rsbx/ssbx/xc 指令 中修改的状态寄存器位数 (0s
10、bit15) dst 目的累加器(累加器 a 或 b) shft 4 位指示的移位数(0shft15) dst_ 与当前目的累加器相反的累加器。 若 dst=a,则 dst_=b;若 dst=b,则 dst_=a shift 5 位指示的移位数(-16shift15) eab e 地址总线 sind 使用间接寻址的单访问数据存储器 操作数 ear eab 地址寄存器 smem 16 位单访问的数据存储器操作数 extpmad 23 位立即数表示的程序存储器地址 sp 堆栈指针 frct st1 中的分数模式位 src 源累加器(a 或 b) hi(a) 累加器 a 中的高 16 位(3116
11、位) st0,st1 状态寄存器 0,状态寄存器 1 hm st1 中的保持模式位 sxm st1 中的符号扩展模式位 ifr 中断标志寄存器 t 暂存寄存器 intm st1 中的中断屏蔽位 tc st0 中的测试/控制标志位 k 小于 9 位的短立即数 tos 堆栈栈顶 k3 3 位立即数(0k37) trn 转换寄存器 k5 5 位立即数(0k57) ts t 寄存器中位(50)确定的位移数 第4章 tms320c54xtm dsp汇编语言与混合编程 续表二 符号 说 明 符号 说 明 k9 9 位立即数(0k97) uns 无符号数 1k 16 位长立即数 xf st1 中的外部标志状
12、态位 lmem 使用长字寻址的 32 位单访问数据存 储器操作数 xpc 程序计数器的扩展寄存器 mmr mmr 存储器映射寄存器 xmem 在双操作数和一些单操作数指令中 使用的 16 位双访问数据存储器操作数 mmrx mmry 存储器映射寄存器, ar0ar7 或 sp ymem 在双操作数指令中使用的 16 位双访 问数据存储器操作数 ( ) 寄存器或存储单元包含的内容 # 立即数寻址时常数的前缀 表示可选项 并行指令 第4章 tms320c54xtm dsp汇编语言与混合编程 1数据传送指令数据传送指令 数据传送指令把源操作数从源存储器中传送到目的操作数 指定的存储器中。c54x d
13、sp的数据传送指令包括装载指令、 存储指令、条件存储指令、并行装载和存储指令、并行装载 和乘法指令、并行存储和加/减法指令、并行存储和乘法指令、 混合装载和存储指令。 第4章 tms320c54xtm dsp汇编语言与混合编程 1) 装载指令 装载指令是取数或赋值指令,将存储器内容或立即数赋给 目的寄存器,共7条指令,如下所示。 (1) dld 语 法:助记符方式 表达式方式 dld lmem,dst dst = dbl(lmem) dst = dual(lmem) 执行方式:if c16 = 0 then (lmem)dst else (lmem(31-16)dst(39-16) (lmem
14、(15-0)dst(15-0) 受sxm的影响。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:该指令只把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章 tms320c54xtm dsp汇编语言与混合编程 例例4.1 dld *ar3+,b ar3 00 0000 0000 b 0100 00 666
15、6 5555 b 0102 before instruction after instruction data memory 6666 0100h 6666 0100h 5555 0101h 5555 0101h 因为该指令是一个长操作指令,所以ar3在执行后加2。 第4章 tms320c54xtm dsp汇编语言与混合编程 (2) ld 语 法:助记符方式 表达式方式 ld smem,dst dst =dbl(lmem) dst =dual(lmem) ld smem,ts,dst dst = smem ts ld smem,16,dst dst = smem 16 ld smem,shif
16、t,dst dst = smem shift ld xmem,shift,dst dst = xmem shift ld # k,dst dst = # k ld # 1k ,shift,dst dst = # 1k shift ld # 1k ,16,dst dst = # 1k 16 ld src,asm ,dst dst = src asm ld src,shift ,dst dst = src shift 第4章 tms320c54xtm dsp汇编语言与混合编程 执行过程: (smem)dst (smem) tsdst (smem) 16dst (smem) shiftdst (xm
17、em) tsdst kdst 1k shiftdst 1k 16dst (src)asmdst (src)shiftdst 第4章 tms320c54xtm dsp汇编语言与混合编程 在所有累加器装入操作中都会受到sxm影响,在带有 shift或asm移位的装入操作中只受ovm的影响;在带有 shift或asm移位的装入指令中影响ovd(或当dst=src时影响 ovsrc)。 功能描述:把一数据存储器值或一立即数装入累加器(dst 或当没有确定dst时为src),并支持各种不同的移位。另外,指 令支持带移位的累加器到累加器的搬移。 第4章 tms320c54xtm dsp汇编语言与混合编程
18、例例4.2 ld *ar1,a 00 0000 0000 a before instruction 0 sxm after instruction 00 0000 abcd a 0 sxm 0200 ar1 0200 ar1 data memory 0200h abcd abcd 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.3 ld *ar1,a 00 0000 0000 a 1 sxm ff ffff fedc a 1 sxm 0200 ar1 0200 ar1 before instructionafter instruction data memory
19、 0200h fedc fedc 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.4 ld *ar3+,16,a 00 0000 0000 b before instruction 1 sxm after instruction ff fffe dc00 b 1 sxm 0200 ar1 0200 ar1 8 t 8 t data memory 0200h fedc fedc 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 00 0000 0000 a before instruction 1 sxm after instruction f
20、f ffdc 0000 a 1 sxm 0300 ar3 0301 ar3 例4.5 ld *ar3+,16,a data memory 0300h fedc fedc 0300h 第4章 tms320c54xtm dsp汇编语言与混合编程 (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 第4章 tms320c54xtm dsp汇编语言与混
21、合编程 执行过程: (smem)t (smem(8-0)dp k9dp k5asm k3arp (smem(4-0)asm 不影响任何状态位。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:把一个数装入t寄存器或状态寄存器st0或 st1中的dp、asm和arp域中。装入的数可以是一个单数据 存储器操作数smem也可以是一个常数。该指令代码为一个字, 但当smem采用了长偏移直接寻址或绝对地址寻址方式时,指 令代码为两个字。 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.6 ld *ar3+,t 0000 t before instruction 0
22、300 ar3 after instruction abcd t 0301 ar3 data memory 0300h abcd abcd 0300h 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.7 ld *ar4,dp 0200 ar4 before instruction 1ff dp after instruction 0200 ar4 0dc dp data memory 0200h fedc fedc 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.8 ld #23,dp dp 1ff before instruction afte
23、r instruction 017 dp 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.9 ld 15,asm 00 asm before instruction after instruction 0f asm 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.10 ld 3,arp 0 arp before instruction after instruction 3 arp 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.11 ld dat0 asm asm 00 before instruction 004 dp after in
24、struction 1c asm 004 dp data memory 0200h fedc fedc 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 (4) ldm 语 法:助记符方式 表达式方式 ldm mmr,dst dst = mmr dst =mmr(mmr) 执 行过程:(mmr)dst 不影响任何状态位。 功能描述:把存储器映射寄存器mmr中的值装入到目的累 加器dst中。不管dp的当前值或arx的高9位的值是多少,都把有 效地址的高9位清0,以指定为在数据页0中。该指令不受sxm的 影响。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例
25、4.12 ldm ar4,a ar4 00 0000 1111 a before instruction eeee ar4 after instruction 00 0000 eeee a eeee 第4章 tms320c54xtm dsp汇编语言与混合编程 (5) ldr 语 法:助记符方式 表达式方式 ldr smem,dst dst = rnd(smem) 执行过程:(smem) 16 + 1 15dst(31-16) 受sxm的影响。 功能描述:把单数据存储器操作数smem左移16 bit后装入目 的累加器dst的高端(3116位)。smem通过加215 再对累加器的低端(150位)清
26、0来凑整。累加器 的第15位置为1。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.13 ldr *ar1,a 00 0000 0000 a before instruction 0 sxm after instruction 00 eeee 8000 a 0 sxm 0200 ar1 0200 ar1 data memory 0200h eeee eeee 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 (6) ldu 语 法:助记符方式 表达式方式 ldu smem,dst dst = uns(smem) 执行过程:(smem)dst(15-0
27、) 00 0000hdst(39-6) 不影响任何状态位。 功能描述:把单数据存储器值smem装入目的累加器dst的 低端(150位)。dst的保护位和高端(3916位)清0。因此,数据 被看成是一个不带符号的16 bit数。不管sxm位的状态如何都无 符号扩展。该指令代码占一个字,但当smem采用长偏移间接寻 址或绝对地址寻址方式时就会多占一个字。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.14 ldu *ar1,a 00 0000 0000 a before instruction 0200 ar1 after instruction 00 0000 eeee a
28、 0200 ar1 data memory 0200h eeee eeee 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 (7) ltd 语 法:助记符方式 表达式方式 ltd smem ltd(smem) 执行过程:(smem)t (smem)smem + 1 不影响任何状态位。 功能描述:把一个单数据存储器单元的内容smem复制到t 寄存器和紧接着t的数据单元中去。当数据复制完毕后,smem 单元的内容保持不变。这个功能在数字信号处理中实现一个z延 时是相当有用的。该功能在存储器延迟指令中也存在。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4
29、.15 ltd *ar3 0000 t before instruction 0100 ar3 after instruction 6666 t 0100 ar3 data memory 6666 0100h 6666 0100h xxxx 0101h 6666 0101h 第4章 tms320c54xtm dsp汇编语言与混合编程 2) 存储指令 存储指令将原操作数或立即数存入存储器或寄存器,共10 条指令, 如下所示。 (1) dst 语 法:助记符方式 表达式方式 dst src,lmem dbl(lmem)= src dual(lmem)= src 执行过程:(src(31-0)lme
30、m 不影响任何状态位。 功能描述:把源累加器的内容放在一个32 bit的长数据存储 器单元lmem中。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.16 dst b,*ar3+ 00 6666 5555 b before instruction 0100 ar3 after instruction 00 6666 5555 b 0102 ar3 data memory 0000 0100h 6666 0100h 0000 0101h 5555 0101h 第4章 tms320c54xtm dsp汇编语言与混合编程 (2) st 语 法:助记符方式 表达式方式 st t,
31、smem smem = t st trn,smem smem = trn st #1k,smem smem = #1k 执行过程: (t)smem (trn)smem 1k smem 该指令不影响任何状态位。 功能描述:把t寄存器的内容,过渡寄存器(trn)的内容或一个 16 bit常数1 k存放到数据存储器单元smem中去。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.17 st trn,dat5 004 dp before instruction 1234 trn after instruction 004 dp 1234 trn data memory 0030
32、0205h 1234 0205h 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.18 st t,*ar7- 4210 t before instruction 0321 ar7 after instruction 4210 t 0320 ar7 data memory 1200 0321h 4210 0321h 第4章 tms320c54xtm dsp汇编语言与混合编程 (3) sth 语 法:助记符方式 表达式方式 sth src,smem smem = hi(src) sth src,asm,smem smem = hi(src) asm sth src,shft,x
33、mem xmem = hi(src)shft sth src,shift,smem smem = hi(src) shift 执行过程: (src(31-16)smem (src)(asm-16)smem (src)(shft-16)xmem (src)(shift-16)smem 该指令受sxm影响。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:把源累加器src的高端(3116位)存放到数据 存储器单元smem中去。src进行左移,移动位数由asm、 shft或shift决定;然后再把移位后的值(3116位)存放到 数据存储器单元(smem或xmem)中。如果sxm
34、=0,则把src的 39位复制到数据存储器单元的最高位。如果sxm=1,就把移 位后进行了符号扩展的第39位存放到数据存储器单元的最高 位。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.19 sth a,dat10 ff 1234 5678 a before instruction 004 dp after instruction ff 1234 5678 a 004 dp data memory 020ah 1234 020ah 8765 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.20 sth b,8,*ar7 ff 8421 1234 b
35、before instruction 0321 ar7 after instruction ff 8421 1234 b 0320 ar7 abcd 0321h ff84 0321h data memory 第4章 tms320c54xtm dsp汇编语言与混合编程 (4) stl 语 法:助记符方式 表达式方式 stl src,smem smem = src stl src,asm,smem smem = src asm stl src,shft,xmem xmem = srcshft stl src,shift,smem smem = src shift 执行过程: (src(15-0)s
36、mem (src) asmsmem (src) shftxmem (src) shift-16smem 第4章 tms320c54xtm dsp汇编语言与混合编程 该指令受sxm影响。 功能描述:把源累加器src的低端(150位)存放到数据存 储器单元smem中去。src进行左移操作,移动位数由asm、 shft或shift决定。然后把移位后的值(150位)存放到数据 存储器单元(smem或xmem)中去。当移位值为正时,低位添0。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.21 stl a,dat11 ff 1234 5678 a before instructio
37、n 004 dp after instruction ff 1234 5678 a 004 dp 8765 020bh 5678 020bh data memory 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.22 ff 8421 1234 b before instruction 0 sxm after instruction ff 8421 1234 b 0 sxm 0321 ar7 0320 ar7 stl b,-8,*ar7- data memory 0321h 0099 2112 0321h 第4章 tms320c54xtm dsp汇编语言与混合编程 (5)
38、stlm 语 法:助记符方式 表达式方式 stlm src,mmr mmr = src mmr(mmr)= src 执行过程:(src(15-0)mmr 该指令不影响任何状态位。 功能描述:把源累加器src的低端(150位)存放到存储器映 射寄存器mmr中。无论dp的当前值或arx的高9位是多少,都 对有效地址的高9位清0。指令允许src存放在数据第0页中的任何 一个存储器单元中而不必修改状态寄存器st0中的dp域。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.23 stlm a,brc before instruction after instruction ff 1
39、234 5678 a 8765 brc(1ah) ff 1234 5678 a 5678 brc 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.24 stlm b,*ar1- ff 8421 1234 b before instruction 3f17 ar1 after instruction ff 8421 1234 b 0016 ar1 0099 ar7(17h) 1234 ar7 第4章 tms320c54xtm dsp汇编语言与混合编程 (6) stm 语 法:助记符方式 表达式方式 stlm # 1k,mmr mmr = #1k mmr(mmr)= #1k 执
40、行过程:1kmmr 该指令不影响任何状态位。 功能描述:功能描述:该指令的功能是:把一个16 bit常数1k存放到一个存 储器映射寄存器mmr或一个在第0数据页中的存储 器单元,而不必修改状态寄存器st0中的dp域。无 论dp的当前值或arx的高9位是多少,都对有效地 址的高9位清0。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.25 stm 1111h,imr ff01 imr before instruction after instruction 1111 imr 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.26 stm 8765h,*ar
41、7+ 0000 ar0 before instruction 8010 ar7 after instruction 8765 ar0 8010 ar7 第4章 tms320c54xtm dsp汇编语言与混合编程 (7) cmps 语 法:助记符方式 表达式方式 cmps src,smem cmps(src,smem) 执行过程:if(src(31-16)(src(15-0) then (src(31-16)smem (trn) 1trn 0trn(0) 0tc else (src(15-0)smem 1trn(0) 1tc 该指令影响tc位。 第4章 tms320c54xtm dsp汇编语言与
42、混合编程 功能描述:比较位于源累加器的高端和低端的两个16 bit二 进制补码值的大小,把较大值存在单数据存储器单元smem中。 如果是源累加器的高端(3116位)较大,则过渡寄存器(trn)左 移一位,最低位填0,tc位清0。如果是源累加器的低端(150 位)较大,则trn左移一位,最低位填1,tc位置1。该指令不遵 从标准的流水操作。比较是在读操作数阶段完成,因而,源累 加器的值是指令执行前一个阶段的值。trn寄存器和tc位是在 执行阶段被修改的。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.27 cmps a,*ar4+ 0000 0100h 7899 0100h
43、 data memory a before instruction tc after instruction a tc 00 2345 7899 0 0100 ar4 00 2345 7899 1 0101 ar4 4444 trn 8889 trn 第4章 tms320c54xtm dsp汇编语言与混合编程 (8) saccd 语 法:助记符方式 表达式方式 saccd src, xmem, cond if (cond) xmem=hi (src)asm 执行方式:if (cond) then (src)0 bgt (b)0 ageq (a)0 bgeq (b)0 alt (a)0 blt
44、(b)0 aleq (a)0 bleq (b)0 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.28 saccd a,*ar3+0%,alt ff fe00 1234 a before instruction 01 asm after instruction ff fe00 1234 a 01 asm 0202 ar3 0204 ar3 ar0 0002 0002 ar0 data memory 0202h 0101 fc00 0202h 第4章 tms320c54xtm dsp汇编语言与混合编程 (9) srccd 语 法:助记符方式 表达式方式 srccd xmem,
45、cond if(cond)xmem=brc 执行过程:if (cond) then (brc)xmem else (xmem)xmem 该指令不会影响任何状态位。 功能描述:如果满足条件,则指令把块循环计数器(brc) 中的内容放到xmem中去;如果不满足条件,则指令把xmem 中的内容读出,再把它写回去,即xmem保持不变。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.29 srccd *ar5-,agt 00 70ff ffff a before instruction 0202 ar5 after instruction 00 70ff ffff a 0201 a
46、r5 3333 brc 3333 brc data memory 0202h 1111 3333 0202h 第4章 tms320c54xtm dsp汇编语言与混合编程 语 法:助记符方式 表达式方式 strcd xmem,cond if(cond) xmem = t 执行过程:if (cond) (t)xmem else (xmem)xmem 该指令不会影响任何状态位。 功能描述:如果满足条件,就把t寄存器的值存放到数据存 储器单元xmem中去;如果不满足条件,则指令从单元xmem中 读出数据,然后再把它写回到xmem中去,即xmem中的数据保 持不变。 第4章 tms320c54xtm d
47、sp汇编语言与混合编程 例例4.30 strcd *ar5-,agt 00 70ff ffff a before instruction 1234 t after instruction 00 70ff ffff a 1234 t 0202 ar5 0201 ar5 data memory 0202h 4321 1234 0202h 第4章 tms320c54xtm dsp汇编语言与混合编程 3) 混合装载和存储指令 混合装载和存储指令共12条,如下所示。 (1) mvdd 语 法:助记符方式 表达式方式 mvdd xmem,ymem ymem = xmem 执行过程:(xmem)ymem 该
48、指令不影响任何状态位。 功能描述:把通过xmem寻址的数据存储器单元的值复制 到通过ymem寻址的数据存储器单元中去。 第4章 tms320c54xtm dsp汇编语言与混合编程 例4.31 mvdd *ar3+,*ar5+ ar3 8000 before instruction after instruction 8001 ar3 data memory abcd 0200h 1111 0200h 1111 8000h 1111 8000h 第4章 tms320c54xtm dsp汇编语言与混合编程 (2) mvdk 语 法:助记符方式 表达式方式 mvdk smem,dmad data(d
49、mad)= smem 执行过程:(dmad)ear if (rc)0 then (smem)通过ear寻址的dmem (ear)+1ear else (smem)通过ear寻址的dmem 该指令不会影响任何状态位。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:把一个单数据存储器操作数smem的内容复制 到一个通过dmad(地址在eab地址寄存器ear中)寻址的数据存 储器单元。可以循环执行该指令来转移数据存储器中的连续字 (使用间接寻址)。实际被转移的字数要比指令开始执行时循环 计数器中的值大1。一旦启动流水,指令就成为单周期指令。 该指令代码占两个字,但当smem采
50、用长偏移间接寻址或绝对 寻址方式时就会多占一个字。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.32 mvdk dat10,8000h 004 dp before instruction after instruction 004 dp data memory 1234 020ah 1234 020ah abcd 8000h 1234 8000h 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.33 mvdk *ar3-,1000h 01ff ar3 before instruction after instruction 01fe ar3 data
51、 memory 1000h abcd 1000h 1234 1234 01ffh 1234 01ffh 第4章 tms320c54xtm dsp汇编语言与混合编程 (3) mvdm 语 法:助记符方式 表达式方式 mvdm dmad,mmr mmr=data(dmad) mmr(mmr)=data(dmad) 执行过程:dmaddar if (rc)0 then (通过dar寻址的dmem) mmr (dar)+1dar else (通过dar寻址的dmem) mmr 第4章 tms320c54xtm dsp汇编语言与混合编程 该指令不影响任何状态位。 功能描述:把数据从一个数据存储器单元dm
52、em(dmad的值 装入dab地址寄存器dar中)复制到一个存储器映射寄存器 mmr中。一旦启动了循环流水,指令就变成了一条单周期指 令。该指令代码占两个字。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.34 mvdm 300h,bk abcd bk before instruction after instruction 1111 bk data memory 0300h 1111 1111 0300h 第4章 tms320c54xtm dsp汇编语言与混合编程 (4) mvdp 语 法:助记符方式 表达式方式 mvdp smem,pmad prog(pmad)= s
53、mem 执行过程: pmadpar if (rc)0 then (smem)由par寻址的pmem (par)+1par else (smem)由par寻址的pmem 该指令不会影响任何状态位。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:把严格的16 bit单数据存储器操作数smem复制 到一个由16 bit立即数pmad寻址的程序存储器单元中。通过循 环执行该指令可以把数据存储器中的连续字(使用间接寻址)转 移到由16 bit立即数寻址的连续的程序存储器空间中。源和目的 块不必全部在片外或片内。当循环流水开始进行时,该指令就 变成了一个单周期指令。另外,当循环执行
54、该指令时,中断被 禁止。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.35 mvdp dat0,0fe00h 004 dp before instruction after instruction 004 dp data memory 0200h 0123 0123 0200h program memory ffff fe00h 0123 fe00h 第4章 tms320c54xtm dsp汇编语言与混合编程 (5) mvkd 语 法:助记符方式 表达式方式 mvkd dmad, smem smem = data(dmad) 执行过程: dmaddar if (rc)0
55、 then (通过dar寻址的dmem)smem (dar)+1dar else (通过dar寻址的dmem)smem 该指令不会影响任何状态位。 第4章 tms320c54xtm dsp汇编语言与混合编程 功能描述:把数据从一数据存储器单元转移到另一个数据 存储器单元中。源数据存储器单元由一个16 bit立即数dmad寻 址,然后转移到smem中。循环执行该指令可以转移数据存储 器中的连续字(使用间接寻址)。转移的字数要比指令开始执行 时循环计数器中的值大1。一旦形成循环流水,该指令就变成 了单周期指令。该指令代码占两个字,但当smem采用长偏移 间接寻址或绝对寻址方式时就会多占一个字。 第
56、4章 tms320c54xtm dsp汇编语言与混合编程 例例4.36 mvkd 1000h,*+ar5 01ff ar5 before instruction after instruction 0200 ar5 data memory 1234 1000h 1234 abcd 0200h 1234 1000h 0200h 第4章 tms320c54xtm dsp汇编语言与混合编程 (6) mvmd 语 法:助记符方式 表达式方式 mvmd mmr,dmad data(dmad)= mmr data(dmad)= mmr(mmr) 执行过程:dmadear if(rc)0 then (mmr
57、)由ear寻址的dmem (ear)+ 1ear else (mmr)由ear寻址的dmem 第4章 tms320c54xtm dsp汇编语言与混合编程 该指令不影响任何状态位。 功能描述:把数据从一个存储器映射寄存器mmr转移到 一个数据存储器中。目的数据存储器通过一个16 bit立即数 dmad寻址。一旦建立了循环流水,该指令就变成了单周期指 令。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.37 mvmd ar7,8000h 1111 ar7 before instruction after instruction 1111 ar7 data memory 800
58、0h abcd 1111 8000h 第4章 tms320c54xtm dsp汇编语言与混合编程 (7) mvmm 语 法:助记符方式 表达式方式 mvmm mmrx,mmry mmry = mmrx mmr(mmry)= mmr(mmrx) 执行过程:(mmrx)mmry 该指令不会影响任何状态位。 功能描述:把存储器映射寄存器mmrx中的内容转移到另 一个存储器映射寄存器mmry中。mmrx和mmry只可能为9种 操作数(ar0ar7和sp)。读mmrx的操作在译码阶段执行;写 mmry的操作在访问阶段执行。注意,该指令不能循环执行。 第4章 tms320c54xtm dsp汇编语言与混合
59、编程 例例4.38 mvmm sp,ar1 sp 3eff ar1 before instruction 0111 sp after instruction 0111 ar1 0111 第4章 tms320c54xtm dsp汇编语言与混合编程 (8) mvpd 语 法:助记符方式 表达式方式 mvpd pmad,smem smem = prog(pmad) 执行过程:pmadpar if (rc)0 then (由par寻址的pmem)smem (par)+1par else (由par寻址的pmem)smem 第4章 tms320c54xtm dsp汇编语言与混合编程 该指令不影响任何状态
60、位。 功能描述:把一个字通过16 bit立即数pmad寻址的程序存 储器转移到一个由smem寻址的数据存储器单元。循环执行该 指令能把程序存储器中的连续字转移到连续的数据存储器单元 中去。源和目的块不必全部都在片内或片外。当建立起了循环 流水,该指令就变成了单周期指令。另外,循环执行该指令时 禁止中断。该指令代码占两个字,但当smem采用长偏移间接 寻址或绝对寻址方式时就会多占一个字。 第4章 tms320c54xtm dsp汇编语言与混合编程 例例4.39 mvpd 0fe00h,dat5 dp 006 before instruction after instruction 006 dp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年疼痛管理策略研究及2025年市场前景预测
- 工程装备制造业绿色投资策略分析-洞察及研究
- 三年级语文培优辅差教学计划
- 物业管理服务标准及监督办法
- 2025年废弃矿井资源再利用在新型建筑材料产业中的应用研究报告
- 食品冷链物流设计标准解读
- 感恩节历史及企业文化融入方案
- 水土保持项目综合治理建设方案书
- 何为变更主合同(标准版)
- 小学低段数学教学重难点讲解
- JG/T 272-2010预制高强混凝土薄壁钢管桩
- 仙居两山生物科技有限公司生物酶及辅酶环评报告
- 货运平台代扣代缴协议书
- 日本所有番号分类
- T/CATCM 026-2023中药液体废弃物循环利用指导原则
- 过程稽核培训
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 2025景观园林设计合同
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 人教九年级英语上册Unit 7《单元写作》课件
- 种植土外购合同协议
评论
0/150
提交评论