1、20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1 120222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2 2本章涉及的内容包括本章涉及的内容包括C54x指令指令系统寻址方式的分类和功能,指令系系统寻址方式的分类和功能,指令系统中的常用符号、缩略语和运算符,统中的常用符号、缩略语和运算符,数据传送、算术运算、逻辑运算、程数据传送、算术运算、逻辑运算、程序控制、并行操作和重复操作指令。序控制、并行操作和重复操作指令。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用3 33.1 寻址方式寻址方式 3.2 TMS320C54
2、x的指令表示方法的指令表示方法 3.3 TMS320C54x的指令系统的指令系统 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用4 420222022年年8 8月月1717日日DSPDSP原理及应用原理及应用5 5C54xC54x有有7 7种基本的数据寻址方式:种基本的数据寻址方式:立即寻址立即寻址 绝对寻址绝对寻址 累加器寻址累加器寻址 直接寻址直接寻址 间接寻址间接寻址 存储器映像存储器映像 寄存器寻址寄存器寻址 堆栈寻址堆栈寻址由指令提供一个操作数由指令提供一个操作数:由指令提供一个操作数地址由指令提供一个操作数地址 :以累加器的内容为地址访问程序空间某单元以
3、累加器的内容为地址访问程序空间某单元:寻址地址为寻址地址为DPDP或或SPSP的值加上指令提供的偏移量的值加上指令提供的偏移量:利用辅助寄存器访问存储器利用辅助寄存器访问存储器 :用来改变映像寄存器,但不影响用来改变映像寄存器,但不影响DPDP或或SPSP的值的值:用来管理系统堆栈中的操作用来管理系统堆栈中的操作20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用6 620222022年年8 8月月1717日日DSPDSP原理及应用原理及应用7 720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8 8指令中含有执行指令所需的操作数。操作数紧随指令
4、中含有执行指令所需的操作数。操作数紧随操作码存放在程序存储器中。操作码存放在程序存储器中。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9 920222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1010指令中含有所要寻找的操作数的指令中含有所要寻找的操作数的1616位存储单元位存储单元地址。地址。特点:指令中包含一个固定的特点:指令中包含一个固定的1616位地址,能寻位地址,能寻 址所有数据存储空间,但运行速度慢,址所有数据存储空间,但运行速度慢,需要较大的存储空间。需要较大的存储空间。20222022年年8 8月月1717日日DSPDSP原理
5、及应用原理及应用1111 绝对寻址绝对寻址是是利用利用1616位地址位地址来来寻址寻址操作数的操作数的存储存储单元单元。由于绝对地址代码的位数为由于绝对地址代码的位数为1616位,所以绝对位,所以绝对地址寻址的指令至少应为地址寻址的指令至少应为2 2个字长。个字长。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用12121.1.数据存储器地址寻址数据存储器地址寻址 用于确定操作数存于数据存储单元的地址。用于确定操作数存于数据存储单元的地址。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用13132.2.程序存储器地址寻址程序存储器地址寻址 用
6、于确定程序存储器中的一个地址。用于确定程序存储器中的一个地址。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用14143.3.端口(端口(PAPA)寻址寻址 用一个符号或一个数字来确定外部用一个符号或一个数字来确定外部I/O端口的端口的地址。地址。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用15154.4.*(1k)(1k)寻址寻址 使用一个指定数据空间的地址来确定数据存使用一个指定数据空间的地址来确定数据存储器中的一个地址储器中的一个地址。允许所有使用单数据存储器允许所有使用单数据存储器(SmemSmem)寻址寻址 的指令去访问数据空间
7、的任意单元,而的指令去访问数据空间的任意单元,而 不改变不改变DPDP的值,也不用对的值,也不用对ARAR进行初始化。进行初始化。这种寻址可用于支持单数据存储器操作数的指令这种寻址可用于支持单数据存储器操作数的指令。注意:注意:*(1 1k k)寻址的指令不能与循环指令寻址的指令不能与循环指令(RPTRPT,RPTZ)RPTZ)一起使用。一起使用。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用161620222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1717 特点:特点:20222022年年8 8月月1717日日DSPDSP原理及应用原理及应
8、用1818当当CPL=0时,数据存储器时,数据存储器1616位地址由位地址由DP和偏和偏移地址移地址dmad构成;构成;当当CPL=1时,数据存储器时,数据存储器1616位地址由位地址由SP加加偏移偏移地址地址dmad构成。构成。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1919当当CPL=0时,时,高高9位位低低7位位20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2020当当CPL=1时,时,高高9位位低低7位位20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用212120222022年年8 8月月1717日
9、日DSPDSP原理及应用原理及应用222220222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2323DPDPdmadma0 0000 0011111 1111操作码操作码 0 111 1111机器码机器码x 0 0000 0011111 11110 1 F FxA00 0000 1000操作码操作码 0 000 0000机器码机器码000 0000y 0 0000 0011000 00001 8 0 0y0180H0001+1001100100 000000 0000 1001ADPDP0 0000 0011dmadma111 11110 1 F FxA00 0000
10、1000DPDP0 0000 0100dmadma000 00000 2 0 0y05000200H05000200H+005100 0000 00 0000 150000 0000 1500A结果结果20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2424120000 0010 0000 0000000 0001000 00100 2 0 10 2 0 2A00 0000 0150A执行结果执行结果20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2525 上述两种上述两种直接寻址方式是相互排斥的;直接寻址方式是相互排斥的;采用采用DP寻址时
11、,要注意数据所在的页面寻址时,要注意数据所在的页面 指针。指针。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用262620222022年年8 8月月1717日日DSPDSP原理及应用原理及应用272720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用282820222022年年8 8月月1717日日DSPDSP原理及应用原理及应用2929 注注11:寻址:寻址1616位字时增位字时增/减量为减量为1 1,3232位字时增位字时增/减量为减量为2 2。注注22:这种方式只能用写操作指令。:这种方式只能用写操作指令。注注33:这种方式不允许对存储
12、器映像寄存器寻址。:这种方式不允许对存储器映像寄存器寻址。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用3030 注注11:寻址:寻址1616位字时增位字时增/减量为减量为1 1,3232位字时增位字时增/减量为减量为2 2。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用3131 注注33:这种方式不允许对存储器映像寄存器寻址。:这种方式不允许对存储器映像寄存器寻址。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用3232循环缓冲区的长度循环缓冲区的长度R R,由循环缓冲区长度寄存器由循环缓冲区长度寄存器BKBK
13、确定确定,可通过指令设定。,可通过指令设定。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用333320222022年年8 8月月1717日日DSPDSP原理及应用原理及应用343420222022年年8 8月月1717日日DSPDSP原理及应用原理及应用353520222022年年8 8月月1717日日DSPDSP原理及应用原理及应用363620222022年年8 8月月1717日日DSPDSP原理及应用原理及应用373720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用383820222022年年8 8月月1717日日DSPDSP原理及应用
14、原理及应用393920222022年年8 8月月1717日日DSPDSP原理及应用原理及应用404020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用414120222022年年8 8月月1717日日DSPDSP原理及应用原理及应用424220222022年年8 8月月1717日日DSPDSP原理及应用原理及应用434320222022年年8 8月月1717日日DSPDSP原理及应用原理及应用444420222022年年8 8月月1717日日DSPDSP原理及应用原理及应用454520222022年年8 8月月1717日日DSPDSP原理及应用原理及应用46462022
15、2022年年8 8月月1717日日DSPDSP原理及应用原理及应用47471.1.采用直接寻址方式采用直接寻址方式2.2.采用间接寻址方式采用间接寻址方式20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用484820222022年年8 8月月1717日日DSPDSP原理及应用原理及应用494920222022年年8 8月月1717日日DSPDSP原理及应用原理及应用5050当进栈操作时,当进栈操作时,SPSP先减小,然后数据进入堆栈;先减小,然后数据进入堆栈;当出栈操作时,数据先出栈,然后当出栈操作时,数据先出栈,然后SPSP增加。增加。20222022年年8 8月月1
16、717日日DSPDSP原理及应用原理及应用5151smem smem 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用525220222022年年8 8月月1717日日DSPDSP原理及应用原理及应用5353操作码操作码 源操作数源操作数目的操作数目的操作数20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用54543.2.13.2.1 指令系统中的符号指令系统中的符号 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用555520222022年年8 8月月1717日日DSPDSP原理及应用原理及应用56562022202
17、2年年8 8月月1717日日DSPDSP原理及应用原理及应用575720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用585820222022年年8 8月月1717日日DSPDSP原理及应用原理及应用595920222022年年8 8月月1717日日DSPDSP原理及应用原理及应用606020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用616120222022年年8 8月月1717日日DSPDSP原理及应用原理及应用62623.2.13.2.1 指令系统中的符号指令系统中的符号 2.2.指令操作码符号和缩略语指令操作码符号和缩略语2022202
18、2年年8 8月月1717日日DSPDSP原理及应用原理及应用63632.2.指令操作码符号和缩略语指令操作码符号和缩略语20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用64642.2.指令操作码符号和缩略语指令操作码符号和缩略语 例如例如:;单数据存储器操作数单数据存储器操作数,移位后加载累加器移位后加载累加器操作码操作码:151413121110987654321020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用65653.2.23.2.2 指令系统中的运算符指令系统中的运算符 1.1.指令系统中使用的记号指令系统中使用的记号2022202
19、2年年8 8月月1717日日DSPDSP原理及应用原理及应用66662.2.指令系统的运算符号指令系统的运算符号20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用676720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用6868是从存储器中将源操作数传送到目的操作数所是从存储器中将源操作数传送到目的操作数所指定的存储器中指定的存储器中。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用6969即取数或赋值指令,用于将存储器内容或立即即取数或赋值指令,用于将存储器内容或立即数赋给目的寄存器,共计数赋给目的寄存器,共计2121
20、条。条。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用707020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用717120222022年年8 8月月1717日日DSPDSP原理及应用原理及应用727220222022年年8 8月月1717日日DSPDSP原理及应用原理及应用737320222022年年8 8月月1717日日DSPDSP原理及应用原理及应用747420222022年年8 8月月1717日日DSPDSP原理及应用原理及应用757520222022年年8 8月月1717日日DSPDSP原理及应用原理及应用767620222022年
21、年8 8月月1717日日DSPDSP原理及应用原理及应用777720222022年年8 8月月1717日日DSPDSP原理及应用原理及应用787820222022年年8 8月月1717日日DSPDSP原理及应用原理及应用7979根据条件将源操作数存入目的存储器,共计根据条件将源操作数存入目的存储器,共计4 4条条指令。指令。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用808020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8181用于完成数据存储器、程序存储器以及用于完成数据存储器、程序存储器以及I/OI/O口口之间的数据传输,共计之间的
22、数据传输,共计1212条。条。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8282 功能功能:pmadpmad=Smem Smem 将数据存储器将数据存储器SmemSmem中的数据传送中的数据传送 到以到以pmadpmad为地址的程序存储器中。为地址的程序存储器中。功能功能:SmemSmem=dmad dmad 将以将以dmaddmad为地址的数据存储器中为地址的数据存储器中 的数据传送到数据存储器的数据传送到数据存储器SmemSmem中。中。dmaddmad=MMR =MMR 将将MMRMMR中的数据传送到以中的数据传送到以dmaddmad为地为地 址的数据存储
23、器中。址的数据存储器中。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用838320222022年年8 8月月1717日日DSPDSP原理及应用原理及应用848420222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8585包括:包括:20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8686(1)(1)加法指令加法指令 操操 作作 码码:ADD、ADDC、ADDM、ADDS 源操作数源操作数:Smem、Xmem、Ymem、#lk、src 移移 位位 数数:TS、16、SHIFT、SHFT、ASM 目的操作数:目的操作数:s
24、rc、dst、Smem 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8787(1)(1)加法指令加法指令 ADD SmemSmemXmemXmem#lklksrcADD ADD SmemSmem,srcsrcADD ADD SmemSmem,TS,TS,srcsrcADD ADD SmemSmem,16,16,srcsrc,dstdst ADD ADD SmemSmem,SHIFT,SHIFT,srcsrc,dstdst 操作码操作码 源操作数源操作数 指令格式指令格式ADD ADD XmemXmem,SHIFT,SHIFT,srcsrcADD ADD XmemX
25、mem,YmemYmem,dstdstADD#ADD#lklk,SHFT,SHFT,srcsrc,dstdst ADD#ADD#lklk,16,16,srcsrc,dstdst ADD ADD srcsrc,SHIFT,SHIFT,dstdst ADD ADD srcsrc,ASM,ASM,dstdst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8888(1)(1)加法指令加法指令 ADDC 操作码操作码 源操作数源操作数 指令格式指令格式 Smem ADDC Smem,src ADDM#lk ADDC#lk,Smem ADDS Smem ADDC Smem,s
26、rc 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用8989加法指令功能加法指令功能 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9090(2)(2)减法指令减法指令 SUBSUBBSUBCSUBS 指令格式:指令格式:操作码操作码 源操作数源操作数 ,移位数移位数 ,目的操作数目的操作数SmemXmemYmem#lksrc TS16SHIFTSHFTASM srcdst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9191(2)(2)减法指令减法指令 SUB SmemSmemXmemXmem#lklksr
27、cSUB SUB SmemSmem,srcsrcSUB SUB SmemSmem,TS,TS,srcsrcSUB SUB SmemSmem,16,16,srcsrc,dstdst SUB SUB SmemSmem,SHIFT,SHIFT,srcsrc,dstdst 操作码操作码 源操作数源操作数 指令格式指令格式SUB SUB XmemXmem,SHIFT,SHIFT,srcsrcSUB SUB XmemXmem,YmemYmem,dstdstSUB#SUB#lklk,SHFT,SHFT,srcsrc,dstdst SUB#SUB#lklk,16,16,srcsrc,dstdst SUB SU
28、B srcsrc,SHIFT,SHIFT,dstdst SUB SUB srcsrc,ASM,ASM,dstdst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9292(2)(2)减法指令减法指令 SUBB 操作码操作码 源操作数源操作数 目的操作数目的操作数 指令格式指令格式Smem SUBB Smem,src SUBC Smem SUBC Smem,src SUBS Smem ADDC Smem,src src src src 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9393减法指令功能减法指令功能 20222022年年8 8
29、月月1717日日DSPDSP原理及应用原理及应用9494(3)(3)乘法指令乘法指令 C54x的指令系统提供了的指令系统提供了1010条乘法运算指令,其条乘法运算指令,其运算结果都是运算结果都是3232位的,存放在累加器位的,存放在累加器A A和和B B中中。而参与而参与运算的乘数可以是运算的乘数可以是T T寄存器、立即数、存储单元和累寄存器、立即数、存储单元和累加器加器A A或或B B的高的高1616位。位。格式:格式:操作码操作码 源操作数源操作数1 1 ,源操作数源操作数2 2 ,目的操作数目的操作数操操 作作 码码:MPY、MPYR、MPYA、MPYU、SQUR 源操作数源操作数1 1
30、:Smem、Xmem、#lk 源操作数源操作数2 2:Ymem、#lk 目的操作数:目的操作数:dst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9595(3)(3)乘法指令乘法指令 MPY SmemSmemXmemXmem#lklkMPY Smem,dstMPY Smem,#lk,dst 操作码操作码 源操作数源操作数 指令格式指令格式MPY Xmem,Ymem,dstMPY#lk,dst MPYA MPYA dstMPYA Smem20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9696(3)(3)乘法指令乘法指令 MPYR 操作码
31、操作码 源操作数源操作数 目的操作数目的操作数 指令格式指令格式Smem MPYR Smem,dst MPYU Smem MPYU Smem,dst SQUR Smem SQUR Smem,dst dst dst dst A dst SQUR A,dst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9797乘法指令功能乘法指令功能 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9898(4)(4)乘法乘法-累加和乘法累加和乘法-减法指令减法指令 这类指令共计这类指令共计2222条,除了完成乘法运算外,还具条,除了完成乘法运算外,还具有加
32、法或减法运算。因此,在一些复杂的算法中,可有加法或减法运算。因此,在一些复杂的算法中,可以大大提高运算速度。以大大提高运算速度。参与运算的乘数可以是参与运算的乘数可以是T T寄存器、立即数、存储寄存器、立即数、存储单元和累加器单元和累加器A A或或B B的高的高1616位。位。乘法运算结束后,再将乘积与目的操作数进行加乘法运算结束后,再将乘积与目的操作数进行加法或减法运算。法或减法运算。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用9999(4)(4)乘法乘法-累加和乘法累加和乘法-减法指令减法指令 格式:格式:操作码操作码 源操作数源操作数1 1 ,源操作数源操作
33、数2 2 ,目的操作数目的操作数操操 作作 码码:MAC、MACR、MACA、MACAR、MACD、MACP、MACSU、MAS、MASR源操作数源操作数1 1:Smem、Xmem、#lk、T 源操作数源操作数2 2:Ymem、#lk、pmad 目的操作数:目的操作数:src、dst、B 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用100100(4)(4)乘法乘法-累加和乘法累加和乘法-减法指令减法指令 MAC SmemSmemXmemXmem#lklkMAC Smem,srcMAC Smem,#lk,src,dst 操作码操作码 源操作数源操作数 指令格式指令格
34、式MAC Xmem,Ymem,src,dstMAC#lk,src,dst MACR MACR Smem,srcMACR Xmem,Ymem,src,dstSmemSmemXmemXmem20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用101101(4)(4)乘法乘法-累加和乘法累加和乘法-减法指令减法指令 操作码操作码 源操作数源操作数1 1 源操作数源操作数2 2 指令格式指令格式 MACA MACA Smem,BMACA T,src,dstSmemSmem T T MACAR MACAR Smem,BMACAR T,src,dstSmemSmem T T MACD
35、 MACD Smem,pmad,srcSmemSmempmadpmad MACP MACP Smem,pmad,srcSmemSmempmadpmad MACSU MACSU Xmem,Ymem,srcXmemXmemYmemYmem20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用102102(4)(4)乘法乘法-累加和乘法累加和乘法-减法指令减法指令 操作码操作码 源操作数源操作数 指令格式指令格式 MAS MAS Smem,srcMAS Xmem,Ymem,src,dstSmemSmemXmemXmem MASR MASR Smem,srcMASR Xmem,Ym
36、em,src,dstSmemSmemXmemXmem20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用103103乘法乘法-累加和乘法累加和乘法-减法指令功能减法指令功能 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用104104乘法乘法-累加和乘法累加和乘法-减法指令功能减法指令功能 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用105105乘法乘法-累加和乘法累加和乘法-减法指令功能减法指令功能 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用106106(5)(5)双字算术运算指令双
37、字算术运算指令 双字算术运算指令共计双字算术运算指令共计6 6条,完成双条,完成双1616位数的加位数的加碱运算。碱运算。DADD DADD LmemLmem,srcsrc,dstdst 功能功能:若若C16C16=0 0,则完成双精度加法则完成双精度加法 dstdst=LmemLmem+srcsrc ;若若C16C16=1 1,则双则双1616位数加法位数加法 dstdst(39-16)(39-16)=LmemLmem(31-16)(31-16)+srcsrc(31-16)(31-16)dstdst(15-0)(15-0)=LmemLmem(15-0)(15-0)+srcsrc(15-0)(
38、15-0)20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用107107(5)(5)双字算术运算指令双字算术运算指令 功能功能:若若C16C16=0 0,则完成双精度加法则完成双精度加法 dstdst=LmemLmem+(+(T T16+T16+T);若若C16C16=1 1,则双则双1616位数加位数加/减法减法 dstdst(39-16)(39-16)=LmemLmem(31-16)(31-16)+T T dstdst(15-0)(15-0)=LmemLmem(15-0)-T(15-0)-T20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1
39、08108(5)(5)双字算术运算指令双字算术运算指令 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用109109(5)(5)双字算术运算指令双字算术运算指令 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用110110(5)(5)双字算术运算指令双字算术运算指令 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用111111(5)(5)双字算术运算指令双字算术运算指令 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用112112(6)(6)特殊运算指令特殊运算指令 特殊运算指令共特殊运算指
40、令共1515条条。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用113113(6)(6)特殊运算指令特殊运算指令 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用114114包括:包括:20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用115115 操操 作作 码码:AND、ANDM 源操作数源操作数:Smem、#lk、src 移移 位位 数数:16、SHIFT、SHFT 目的操作数:目的操作数:src、dst、Smem 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用116116 2022
41、2022年年8 8月月1717日日DSPDSP原理及应用原理及应用117117 1Smem,SHFT,src OR2#lk,src,dstOR 163#lk,src,dstOR,SHIFT4 src ,dstOR5#lk ,SmemORM20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用118118 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用119119 1Smem,SHFT,srcXOR2#lk,src,dstXOR 163#lk,src,dstXOR,SHIFT4 src ,dstXOR5#lk ,SmemXORM20222022年年
42、8 8月月1717日日DSPDSP原理及应用原理及应用120120 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用121121 操操 作作 码码:ROL、ROLTC、ROR、SFTA、SFTC、SFTL 源操作数源操作数:src 移移 位位 数数:SHIFT 目的操作数:目的操作数:dst 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用122122 带进位位循环左移带进位位循环左移 操作数操作数src:累加器累加器A或或B 指令功能指令功能:累加器累加器src与进位位与进位位C循环左移一位。循环左移一位。执行过程:执行过程:C src(0
43、)(0)src(30(300)0)src(31(311)1)src(31)(31)C 0 src(39(3932)32);C的值移入的值移入src的最低位的最低位;src左移一位左移一位;src的最高位的最高位移入移入C;src的保护位清的保护位清020222022年年8 8月月1717日日DSPDSP原理及应用原理及应用123123 带测试位循环左移带测试位循环左移 操作数操作数src:累加器累加器A或或B 指令功能指令功能:累加器累加器src与测试位与测试位TC循环左移一位。循环左移一位。执行过程:执行过程:39 3231 0 TC的值移入的值移入src的最低位的最低位 累加器累加器src
44、左移一位左移一位 src的最高位的最高位移入移入TC src的保护位清的保护位清0 0 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用124124 带进位位循环右移带进位位循环右移 操作数操作数src:累加器累加器A或或B 指令功能指令功能:累加器累加器src与进位位与进位位C循环右移一位。循环右移一位。执行过程:执行过程:C的值移入的值移入src的的3131位位 累加器累加器src右移一位右移一位 src的最低位的最低位移入移入C src的保护位清的保护位清039 3231 0 0 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用1251
45、25 算术移位算术移位 操作数操作数src:累加器累加器A或或B 指令功能指令功能:根据根据SHIFT,src的内容算术移位。的内容算术移位。If SHIFT 0Then src(-SHIFT)-1)Csrc(390)SHIFTsrc或或dst 0src(SHIFT-1)0)或或 0dst(SHIFT-1)0)20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用126126 算术移位算术移位执行过程:执行过程:当当SHIFT 0时,进行算术左移时,进行算术左移 1)src的第的第(39-SHIET)位复制到进位位位复制到进位位C;2)40位位src左移左移SHIFT位,结
46、果存入位,结果存入src或或dst;3)将将0置入置入dst的低的低SHIFT的各位的各位 0写入写入dst(SHIFT-1)0)20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用128128 条件移位条件移位 操作数操作数src:累加器累加器A或或B 指令功能指令功能:If src=0 Then 1 TC Else If src(31)=src(30)Then src1 src 0 TC Else 1 TC 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用129129 条件移位条件移位 执行过程:执行过程:当当srcsrc=0 0时时,将将1
47、 1写入测试位写入测试位TCTC;当当srcsrc0 0时,时,进行条件移位。进行条件移位。若若srcsrc有两个有效符号位有两个有效符号位,则移位。则移位。3232位位srcsrc左移一位左移一位;保护位保护位srcsrc(39(3932)32)不变不变;0 0写入测试位写入测试位TCTC。若若srcsrc只有一个符号位只有一个符号位,则不移位。则不移位。1 1写入测试位写入测试位TCTC。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用130130 逻辑移位逻辑移位 操作数操作数src:累加器累加器A或或B 指令功能:指令功能:If SHIFT0 Then src
48、(-SHIFT)-1)C src(310)SHIFT dst 0 dst(39(31+SHIFT+1)If SHIFT=0 Then 0 C Else src(31-(SHIFT-1)C src(31-SHIFT)0)SHIFT dst 0dst(SHIFT-10)0dst(3932)20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用131131 逻辑移位逻辑移位执行过程:执行过程:若若SHIFTSHIFT 0 0,则进行逻辑左移。则进行逻辑左移。srcsrc的第的第(3131-(-(SHIFTSHIFT-1 1)位复制到进位位位复制到进位位C C;srcsrc(31-
49、31-SHIFTSHIFT)0 0)左移左移SHIFTSHIFT位存入位存入dstdst;0 0写入写入dstdst的低的低SHIFTSHIFT位位,即即0 0dstdst(SHIFTSHIFT-1)-1)0 0);0 0写入写入dstdst的高的高8 8位位,即即0 0dstdst(39(393232)。20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用132132 BIT 指令格式:指令格式:BIT Xmem,BITC 指令功能:指令功能:(Xmem(1515-BITC)TC功能说明:功能说明:将将Xmem的指定位复制到的指定位复制到TC位。位。操操 作作 数:数:
50、Xmem双数据存储操作数双数据存储操作数 BITC测试位的位代码测试位的位代码,取值:取值:0 01515 20222022年年8 8月月1717日日DSPDSP原理及应用原理及应用133133 BITF 指令格式:指令格式:BITF Smem,#lk 指令功能:指令功能:If(Smem)AND AND lk)=)=0 Then 0 TC Else 1 TC功能说明功能说明:测试测试SmemSmem中由中由1 1k k指定的某些位指定的某些位。若指定的测试位为若指定的测试位为0,0,TC=0,TC=0,否则否则,TC=1,TC=1。lklk在测试指定位中起屏蔽作用。在测试指定位中起屏蔽作用。操