版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024年5月11日DSP原理及应用1第3章TMS320C54x的指令系统
概述‘C54x寻址方式‘C54x指令集汇编伪指令链接伪指令本章介绍助记符形式的指令系统,适用于’C54X系列的DSP芯片。2024年5月11日DSP原理及应用2重点:
绝对地址寻址
直接寻址
间接寻址要求:编程实现数据块的移动分析例子程序,指出用到的寻址方式。根据几种间接寻址方式的语句,分析执行结果。
2024年5月11日DSP原理及应用3文档资料网址:SPRU131(CPU及外设)SPRU173(应用举例)SPRU172(助记符指令集)SPRU179(代数指令集)2024年5月11日DSP原理及应用4第3章TMS320C54x的指令系统缩略语名称及含义名称含义Smem:16位单寻址操作数。Xmem:16位双寻址操作数,从DB数据总线上读出。Ymem:16位双寻址操作数,从CB数据总线上读出。dmad:16位立即数,数据存储器地址。pmad:16位立即数,程序存储器地址。PA:16位立即数,I/O口地址。src:源累加器(A或B)。dst:目的累加器(A或B)。lk:16位长立即数。2024年5月11日DSP原理及应用5第3章TMS320C54x的指令系统3.1.1
立即寻址
指令中含有执行指令所需的操作数。操作数紧随操作码存放在程序存储器中。
立即数的数值形式:
①短立即数。3、5、8、9位,单字指令;例LD#2,ARP;ARP=2(#k3)(ST0中)
LD#3,ASM;ASM=3(#k5)(ST1中)
特点:指令中含有一个固定的立即数,运行速度较快,但需占用程序存储空间,并且数值不能改变。
用途:用于表示常数或对寄存器初始化。2024年5月11日DSP原理及应用6②长立即数。16位,双字指令。例:LD#1234h,A;A=1234h(#lk)
‘C54x汇编程序中的立即数用#表示,否则会被认为是一个地址。例LD#80h,A;装入累加器
A
LD80h,A;将地址80H单元中的数据装入A
由于操作数被编到指令中,因此位于程序存储器空间,通过PB读取。第3章TMS320C54x的指令系统2024年5月11日DSP原理及应用7②长立即数。16位,双字指令。例:LD#1234h,A;A=1234h(#lk)
‘C54x汇编程序中的立即数用#表示,否则会被认为是一个地址。例LD#80h,A;装入累加器
A
LD80h,A;将地址80H单元中的数据装入A
由于操作数被编到指令中,因此位于程序存储器空间,通过PB读取。第3章TMS320C54x的指令系统2024年5月11日DSP原理及应用8第3章TMS320C54x的指令系统3.1.1
立即寻址
3位立即数
5位立即数
8位立即数
9位立即数
16位立即数
LD
LD
FRAMELDRPT
LD
ADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM支持立即数的指令
如RPT和LD指令支持多种立即数长度2024年5月11日DSP原理及应用9第3章TMS320C54x的指令系统3.1.2
绝对寻址绝对寻址就是在指令中直接给出操作数的16bit地址,可以是单元地址或16位符号常数,指令代码至少是两个字。16位地址表示形式:
①地址标号,如:TABLE;
②16位符号常量,如:89AB、1234。
例如:
MVKDTABLE,*AR1
;将数据存储器TABLE为地址
的单元数据送入AR1寄存器
指定的数据存储单元中
LD*(DATA),A;将DATA指定的数据存储单元中的数据送入累加器A中特点:指令中包含一个固定的16位地址,能寻址所有数据存储空间,但运行速度慢,需要较大的存储空间。用途:用于对速度要求较低的场合。2024年5月11日DSP原理及应用10第3章TMS320C54x的指令系统3.1.2
绝对寻址
绝对寻址有四种类型:
①数据存储器地址(dmad)寻址;
②程序存储器地址(pmad)寻址;
③端口(PA)寻址;
④*(1k)寻址。
2024年5月11日DSP原理及应用11第3章TMS320C54x的指令系统1.数据存储器地址寻址
用于确定操作数存于数据存储单元的地址。
例如,将数据存储器EXAM1地址单元中的数据复制到AR5寄存器所指向的数据存储单元中。
MVKDEXAM1,*AR5
语法:使用一个程序标号或一个数字来指定数据空间的一个地址。数据存储器的16位地址dmad值
2024年5月11日DSP原理及应用12通常有以下指令:MVDKSmem,dmadMVDMdmad,MMRMVKDdmad,SmemMVMDMMR,dmadMVDDXmem,Ymem第3章TMS320C54x的指令系统1.数据存储器地址寻址
2024年5月11日DSP原理及应用13第3章TMS320C54x的指令系统2.程序存储器地址寻址
用于确定程序存储器中的一个地址。例如,将程序存储器TABLE地址单元中的内容复制到AR2寄存器所指向的数据存储单元中。
MVPDTABLE,
*AR2
语法:使用一个符号或具体的数字来指定程序空间的一个地址。程序存储器的16位地址pmad值
2024年5月11日DSP原理及应用14通常有以下指令:FIRSXmem,Ymem,pmad
MACDSmem,pmad,src
MACPSmem,pmad,src
MVDPSmem,pmad
MVPDpmad,Smem第3章TMS320C54x的指令系统2.程序存储器地址寻址
2024年5月11日DSP原理及应用15第3章TMS320C54x的指令系统数据块移动MVDD、MVDP、MVPD
在C54x系列DSP,数据与数据存储器、数据与程序存储器之间可以方便的进行数据传输,结合单指令循环可实现数据块移动。如16个系数的移动:2024年5月11日DSP原理及应用162024年5月11日DSP原理及应用17编程实现将程序存储器从地址1000H到1080H区间的内容复制到数据存储空间从2000H开始的地址空间。编程实现将数据存储器从地址1000H到1080H区间的内容复制到数据存储空间从2000H开始的地址空间。课堂作业2024年5月11日DSP原理及应用18第3章TMS320C54x的指令系统3.端口(PA)寻址用一个符号或一个数字来确定外部I/O端口的地址。例如,把一个数从端口为FIFO的I/O口复制到AR5寄存器所指向的数据存储单元中。
PORTRFIFO,*AR5
PORTRPA,Smem;把I/O口PA的数据读到Smem中PORTWSmem,PA;把Smem中的数据写到I/O口PAI/O端口地址PA2024年5月11日DSP原理及应用19第3章TMS320C54x的指令系统4.*(1k)寻址使用一个指定数据空间的地址来确定数据存储器中的一个地址。例如,把地址为PN的数据单元中的数据装到累加器A中。
LD*(PN),A
语法:允许所有使用单数据存储器(Smem)寻址的指令去访问数据空间的任意单元,而不改变DP的值,也不用对AR进行初始化。
这种寻址可用于支持单数据存储器操作数的指令。
注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。
2024年5月11日DSP原理及应用20第3章TMS320C54x的指令系统3.1.3
累加器寻址
将累加器的内容作为地址去访问程序存储单元,即将累加器中的内容作为地址,用来对存放数据的程序存储器寻址。
例如:
READASmem
;将A中的数据作为地址寻址程序
存储器中的数据,并将数据送
入Smem指定的数据存储单元。
WRITASmem
;将Smem指定的数据存储单元中的
数据,写入A所指定的程序存储
单元。
用途:用于完成程序存储空间与数据存储空间之间的数据传输。注意:
①大多数’C54x用A的低16位作为程序存储器的地址,而’C548和’C549是以A的低23位作为程序存储器地址,’C5402是以A的低20位作为程序存储器地址;
②上述两条指令重复使用时,累加器A自动增减;
③只能使用累加器A寻址程序空间。
④
累加器A用来寻址程序空间。Smem用来寻址数据空间。2024年5月11日DSP原理及应用212024年5月11日DSP原理及应用22第3章TMS320C54x的指令系统3.1.4
直接寻址利用数据指针DP和堆栈指针SP寻址。
指令格式:15~8
7
6~0
操作码
I=0
数据存储器地址(dmad)
指令的8位操作码指令的标识符表示指令为直接寻址
数据存储器地址包含了数据存储器偏移地址
特点:①指令中只含有数据存储器的低7位地址(偏移地址dmad);
②16位数据存储器地址由基地址(数据页指针DP或堆栈指针SP)和偏移地址(dmad)共同构成。
2024年5月11日DSP原理及应用23第3章TMS320C54x的指令系统
地址形成过程:当CPL=0时,直接寻址指令15~876~0操作码I=0dmad页指针DP(位于ST0中)9位数据页指针DP9位数据页指针DP高9位dmad低7位16位数据存储器地址2024年5月11日DSP原理及应用24第3章TMS320C54x的指令系统
地址形成过程:当CPL=1时,直接寻址指令15~876~0操作码I=0dmad高9位dmad低7位16位数据存储器地址16位堆栈指针SP堆栈指针SPSP+dmad16位SP+dmad2024年5月11日DSP原理及应用25第3章TMS320C54x的指令系统3.1.4
直接寻址
DP地址的范围是从0~511(29-1),将存储器分成512页。7位dmad范围是从0~127,每页有128个可以访问的单元。
以DP为基准的直接寻址是由DP值确定是512页中的哪一页,由dmad确定是该页中的哪一个单元。(不能跨页)
SP可以指向存储器中的任意一个地址。dmad可以指向具体的单元,从而允许访问存储器任意基地址中的连续的128个单元。(可以跨页)
2024年5月11日DSP原理及应用26第3章TMS320C54x的指令系统3.1.4
直接寻址
例1:数据存储器存储数据如图所示,采用数据页指针DP直接寻址,完成x,y单元的两个数据求和。RSBXCPL数据存储器地址数据01800001......X:01FF1000y:02000500......第3页第4页LD#3,DPLD@x,AADD@y,A;CPL复位;立即数3赋给DP;x单元的数据送入A;完成x和y单元的数据相加DPdmaLD#3,DPLD#3,DP000000011LD@x,ALD@x,A1111111操作码01111111机器码@x000000011111111101FF@x01FF1000A000000100001FF1000ADD@y,A操作码00000000机器码0000000@y00000001100000001800@y018000010180H0001+1001018000011001000000ADD@y,A0000001001A结果ADD@y,ALD@x,ALD#3,DPRSBXCPLADD@y,ALD#4,DPLD#4,DPRSBXCPLLD#3,DPDP000000011LD@x,Adma111111101FF@xA0000001000LD#4,DPDP000000100ADD@y,Adma00000000200@y05000200H05000200H+005100000000000015000000001500A结果2024年5月11日DSP原理及应用27第3章TMS320C54x的指令系统3.1.4
直接寻址
例2:数据存储器存储数据如图所示,利用堆栈指针SP直接寻址,求堆栈中距栈顶两个数x,y的和。SSBXCPL数据存储器002001000050A000...LD@1,AADD@2,A;CPL置位;x单元的数据送入A;完成x和y单元的数据相加12SP→x:y:SP→x:y:0000001000000000SP0000001dmax0000010dmay0201X地址0202y地址SSBXCPLLD@1,Ax:0200H@1=0201H0100A00000001000100x:ADD@2,A@2=0202Hy:00500202H00500000000510+y:005000000001500000000150A执行结果2024年5月11日DSP原理及应用28第3章TMS320C54x的指令系统3.1.4
直接寻址直接寻址特点:
①直接寻址的优点:每条指令只需要一个字。
②可在单周期寻址128个单元;
③寻址速度快,能进行流水线并行操作。用途:主要用于要求运算速度较快的场合。注意:①上述两种直接寻址方式是相互排斥的;
②采用DP寻址时,要注意数据所在的页面指针。2024年5月11日DSP原理及应用29第3章TMS320C54x的指令系统3.1.5
间接寻址
是根据辅助寄存器(AR0~AR7)给出的16位地址进行寻址。每一个辅助寄存器都可以用来寻址64K字数据存储空间中任何一个单元。间接寻址很灵活,主要用在需要以存储器地址以步进方式连续变化的场合。特别的是能提供循环寻址和位倒序寻址。2024年5月11日DSP原理及应用30第3章TMS320C54x的指令系统3.1.5
间接寻址1.单操作数寻址
用来完成存储单元中16位单数据的读写操作。
指令格式:15~8
7
6~3
2~0
操作码
I=1
MOD
ARF
指令的8位操作码指令的标识符表示指令为间接寻址4位的方式域用来定义间接寻址的类型3位辅助寄存器域用来定义所使用的辅助寄存器2024年5月11日DSP原理及应用31单操作数间接寻址方框图2024年5月11日DSP原理及应用32第3章TMS320C54x的指令系统单操作数间接寻址形式MOD域
操作句法功
能说
明0000*
ARx
地址=ARxARx的内容为数据存储器地址0001*
ARx-
地址=ARxARx=ARx-1寻址结束后,ARx地址减1。[注2]
0010*
ARx+
地址=ARxARx=ARx+1寻址结束后,ARx地址加1。
[注1]
0011*
+ARx
ARx=ARx+1地址=ARx
ARx中的地址加1后,再寻址。
[注1]、[注2]、[注3]
0100*
ARx-0B
地址=ARxARx=B(ARx-AR0)寻址结束后,用位倒序进位的方法从
ARx中减去AR0的值。
[注1]:寻址16位字时增/减量为1,32位字时增/减量为2。[注2]:这种方式只能用写操作指令。[注3]:这种方式不允许对存储器映像寄存器寻址。
2024年5月11日DSP原理及应用33第3章TMS320C54x的指令系统单操作数间接寻址形式MOD域
操作句法功
能说
明0101*
ARx-0
地址=ARxARx=ARx-AR0
寻址结束后,从ARx中减去AR0的值。0110
*
ARx+0
地址=ARx
ARx=ARx+AR0
寻址结束后,把AR0加到ARx中。0111
*
ARx+0B
地址=ARxARx=B(ARx+AR0)寻址结束后,用位倒序进位的方法将
AR0加到ARx中1000
*
ARx-%
地址=ARxARx=Circ(ARx-1)寻址结束后,ARx中的地址值按循环减的方法减1。[注1]
1001
*
ARx-0%
地址=ARx
ARx=Circ(ARx-AR0)
寻址结束后,按循环减的方法从ARx中减去AR0中的值
[注1]:寻址16位字时增/减量为1,32位字时增/减量为2。2024年5月11日DSP原理及应用34第3章TMS320C54x的指令系统单操作数间接寻址形式MOD域
操作句法功
能说
明1010
*
ARx+%
地址=ARxARx=Circ(ARx+1)寻址结束后,ARx中的地址值按循环加的方法加1。[注1]
1011
*
ARx+0%
地址=ARxARx=Circ(ARx+AR0)
寻址结束后,按循环加的方法将AR0中的值加到ARx。
1100
*
ARx(lk)
地址=ARx+lkARx=ARx以ARx与16位数之和作为地址,寻址结束后,ARx中的值不变。
1101
*+ARx(lk)
地址=ARx+lk
ARx=ARx+lk将一个16位带符号数加到ARx,然后寻址。[注3]1110*
ARx(lk)%
地址=Circ(ARx+lk)
ARx=Circ(ARx+lk)
将一个16位带符号数按循环加的方法加至ARx,然后再寻址1111*
(lk)
地址=(lk)利用16位无符号数作为地址,寻址数据存储器[注3]:这种方式不允许对存储器映像寄存器寻址。
2024年5月11日DSP原理及应用35第3章TMS320C54x的指令系统特殊的间接寻址功能:
许多算法,如卷积,相关和FIR滤波等,都需要在存储器中实现一个循环缓冲器。
循环缓冲区的长度R,由循环缓冲区长度寄存器BK确定,可通过指令设定。1.单操作数寻址
(1)循环寻址
其指令:
STM#1K,BK
;将立即数1K存放BK中2024年5月11日DSP原理及应用36第3章TMS320C54x的指令系统长度为R的缓冲区必须从N位地址的边界开始,即循环缓冲区基地址的N个最低有效位必须为0。
N应满足:(1)循环寻址
2N>R的最小整数例如:缓冲区长度R=32,若2N>32,则N=6。缓冲区开始的地址:xxxxxxxxxx000000B
缓冲区长度R=32装入循环缓冲长度寄存器BK中。
循环寻址是以BK的值为模,对缓冲区长度R进行取模运算。2024年5月11日DSP原理及应用37第3章TMS320C54x的指令系统(1)循环寻址
循环寻址通常是指定一个辅助寄存器ARx指向循环缓冲区;
循环缓冲区的有效基地址(EFB)就是用户指定的辅助寄存器(ARx)的低N位置0后所得到的值;
循环缓冲区的尾基地址(EOB)是通过用BK的低N代替ARx的低N位得到;
循环缓冲区的偏移量(index)就是ARx的低N位;
循环寻址的步长(step)就是加到辅助寄存器ARx或从辅助寄存器ARx中减去的值。2024年5月11日DSP原理及应用38应用举例:计算16阶的FIR滤波器输出256个点
.sect “fir-prog” STM#255,BRC ;Repeat256times RPTBDfir_filter_loop-1 STM#16,BK ;FIRcircularbuffersize LD*AR6+,A ;loadtheinputvalue STLA,*AR4+% ;replaceoldestsamplewith ;newestsample RPTZA,BK-1 MAC*AR4+0%,*AR5+0%,A ;filtering STHA,*AR7+ ;replacetheoldestbuffervaluefir_filter_loop将FIR阶数赋值给BK将FIR的点数减1后,赋值给BRC2024年5月11日DSP原理及应用39第3章TMS320C54x的指令系统1.单操作数寻址
(2)位倒序寻址用于快速傅氏变换算法FFT。在这种寻址方式中,AR0存放的整数N是FFT点数的一半。另一个辅助寄存器指向数据存放的物理单元。当使用位倒序寻址把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是从右向左。间接寻址中*ARi+0B/-0B表示位倒序寻址。2024年5月11日DSP原理及应用40第3章TMS320C54x的指令系统(2)位倒序寻址位码顺序和倒序对照表序号位码顺序寻址位码倒序寻址序号位码顺序寻址位码倒序寻址0000000008100000011000110009100110012001001001010100101300111100111011110140100001012110000115010110101311011011601100110141110011170111111015111111112024年5月11日DSP原理及应用41第3章TMS320C54x的指令系统位倒序寻址
(FFT运算时输出/输入序列中必有其一要混序)x(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)WN0x(7)x(6)x(5)x(4)x(3)x(2)x(1)x(0)-1-1-1WN0WN0WN0-1-1WN0WN2WN0WN2-1-1-1WN0WN1WN2WN3-1-1-1-12024年5月11日DSP原理及应用42第3章TMS320C54x的指令系统2.双操作数寻址
指令格式:15~8
76
54
32
10
操作码
Xmod
Xar
Ymod
Yar
指令的8位操作码用来定义Xmem操作数间接寻址方式的类型用来定义存储Xmem地址的辅助寄存器用来定义Ymem操作数间接寻址方式的类型用来定义存储Ymem地址的辅助寄存器2024年5月11日DSP原理及应用43双数据存储器操作数间接寻址方框图2024年5月11日DSP原理及应用44第3章TMS320C54x的指令系统2.双操作数寻址双操作数间接寻址的类型
Xmod、Ymod操作码语法功能
说明
00*
ARx地址=ARxARx中的内容是数据存储器地址
01*
ARx-地址=ARxARx=ARx-1寻址后,ARx的地址减1
10*
ARx+地址=ARxARx=ARx+1寻址后,ARx的地址加1
11*
ARx+0%地址=ARxARx=circ(ARx+AR0)寻址后,AR0以循环寻址方式加到ARx中去
2024年5月11日DSP原理及应用45第3章TMS320C54x的指令系统2.双操作数寻址
在指令中,由于只有2位可以用于选择辅助寄存器,所以根据Xar或Yar的值可以选择4个寄存器。Xar和Yar域选择的辅助寄存器Xar、Yar辅助寄存器00011011AR2AR3AR4AR5例:MPY*AR2,*AR3,A FIRS*AR2+,*AR3+,COEF2024年5月11日DSP原理及应用46第3章TMS320C54x的指令系统
间接寻址特点:通过辅助寄存器和辅助寄存器指针来寻址数据空间存储单元,并自动实现增量、减量、变址寻址、循环寻址,共有16种修正地址的方式。用途:用于需要按固定步长寻址的场合。3.1.5
间接寻址2024年5月11日DSP原理及应用47第3章TMS320C54x的指令系统3.1.6
存储器映像寄存器寻址
’C54x共有8条指令可以进行MMR寻址。
LDMMMR,dst
;将MMR加载到累加器
MVDMdmad,MMR
;数据存储器向MMR传送数据
MVMDMMR,dmad
;MMR向指定地址传送数据
MVMMMMRx,MMRy
;MMRx向MMRy传送数据
POPMMMR
;将数据从栈顶弹至MMR
PSHMMMR
;将MMR数据压入堆栈
STLMsrc,MMR
;累加器低位存入MMR
STM#lk,MMR
;长立即数lk存入MMR2024年5月11日DSP原理及应用48第3章TMS320C54x的指令系统3.1.6
存储器映像寄存器寻址MMR寻址特点:
①
寻址速度快,对MMR执行写操作开销小;
②
可直接利用MMR的名称快速访问数据存储空间的0页资源;(在程序开头加“.mmregs”汇编伪指令)
③只能寻址数据空间的0页单元。
用途:主要用于不改变DP、SP的情况下,修改MMR中的内容。
2024年5月11日DSP原理及应用49第3章TMS320C54x的指令系统3.1.7
堆栈寻址
堆栈:当发生中断或子程序调用时,用来自动保存PC内容以及保护现场或传送参数。
’C54x的堆栈是向低地址生长,并由16位堆栈指针SP管理。SP总是指向栈底。
堆栈寻址:利用SP指针,按照先进后出的原则进行寻址。
当进栈操作时,SP先减小,然后数据进入堆栈;
当出栈操作时,数据先出栈,然后SP增加。
2024年5月11日DSP原理及应用50第3章TMS320C54x的指令系统3.1.7
堆栈寻址
采用堆栈寻址的指令:
PSHDSmem
;将Smem中的数据压入堆栈
PSHMMMR
;将MMR中的数据压入堆栈
POPDSmem
;将数据从栈顶弹至Smem中
POPMMMR
;将数据从栈顶弹至MMR中注意:1、PSH与POP成对出现,且依照先进后出的原则。2、如程序中要用到堆栈,需要先设置。例如:size.set120stack.usect“STACK”,sizeSTM#stack+size,SP;SP指向栈底2024年5月11日DSP原理及应用51数据块移动的实现累加器寻址的特点及用途(累加器A、B的区别)直接寻址方式两种方式下地址的形成(两种方式的在应用上有何不同),注意DP指针的初始化循环寻址的应用,循环寻址首尾地址的确定位倒序寻址的特点及应用。双操作数间接寻址的类型及可用的辅助寄存器。存储器映射寄存器寻址,可直接利用MMR的名称快速访问数据存储空间的0页资源;(在程序开头加“.mmregs”汇编伪指令)堆栈寻址的特点及应用回顾与总结2024年5月11日DSP原理及应用52重点:汇编语言指令系统的4大类指令的用法作业:编程实现TEMP1/TEMP2的程序片断P89习题3.1、3.2、3.52024年5月11日DSP原理及应用53第3章TMS320C54x的指令系统
3.2TMS320C54x的指令表示方法
’C54x的助记符指令是由操作码和操作数两部分组成。在进行汇编以前,操作码和操作数都是用助记符表示。
例如:
LD
#0FFh,A
;将立即数0FF传送至A
操作码源操作数目的操作数注释2024年5月11日DSP原理及应用54第3章TMS320C54x的指令系统3.3TMS320C54x的指令系统
’C54x的指令系统共有129条基本指令,由于操作数的寻址方式不同,由它们可以派生多至205条指令。按指令的功能可分成六大类:数据传送指令算术运算指令逻辑运算指令程序控制指令并行操作指令重复操作指令2024年5月11日DSP原理及应用55第3章TMS320C54x的指令系统3.3.1数据传送指令
是从存储器中将源操作数传送到目的操作数所指定的存储器中。
包括:装载指令存储指令条件存储指令混合装载和存储指令2024年5月11日DSP原理及应用56装入指令2024年5月11日DSP原理及应用572024年5月11日DSP原理及应用58第3章TMS320C54x的指令系统存储指令序号指令功能说明1DSTsrc,LmemLmem
=src累加器值存入长字存储单元2STT,SmemSmem
=T暂存器值存入存储单元3STTRN,SmemSmem
=TRN状态寄存器值存入存储单元4ST#lk,SmemSmem
=#lk长立即数存入存储单元5STHsrc,SmemSmem
=src(31-16)累加器高阶位存入存储单元6STHsrc,ASM,SmemSmem
=src(31-16)<<ASM累加器高阶位移位后存入存储单元7STHsrc,SHFT,XmemXmem
=src(31-16)<<SHFT累加器高阶移位后存入存储单元8STHsrc[,SHIFT],SmemSmem
=src(31-16)<<SHIFT累加器高阶位移位后存入存储单元9STLsrc,SmemSmem
=src(15-0)累加器低阶位存入存储单元10STLsrc,ASM,SmemSmem
=src(15-0)<<ASM累加器低阶位移位后存入存储单元11STLsrc,SHFT,XmemXmem
=src(15-0)<<SHFT累加器低阶位移位后存入存储单元12STLsrc[,SHIFT],SmemSmem
=src(15-0)<<SHIFT累加器低阶位移位后存入存储单元13STLMsrc,MMRMMR
=src(15-0)累加器低阶位存入MMR14STM#lk,MMRMMR
=#lk长立即数存入MMR2024年5月11日DSP原理及应用592024年5月11日DSP原理及应用60第3章TMS320C54x的指令系统3.条件存储指令
根据条件将源操作数存入目的存储器,共计4条指令。2024年5月11日DSP原理及应用61第3章TMS320C54x的指令系统4.混合装载和存储指令用于完成数据存储器、程序存储器以及I/O口之间的数据传输。2024年5月11日DSP原理及应用62数据存储器
数据存储器:MVDKSmem,dmad MVKDdmad,SmemMVDDXmem,Ymem数据存储器
MMR:
MVDMdmad,MMR MVMDMMR,dmadMVMMmmr,mmr程序存储器
数据存储器:MVPDPmad,SmemMVDPSmem,PmadREADASmemWRITASmem第3章TMS320C54x的指令系统2024年5月11日DSP原理及应用63第3章TMS320C54x的指令系统3.3.2算术运算指令
算术运算指令是实现数学计算的重要指令集合。’C54x的算术指令具有运算功能强、指令丰富等特点。
包括:加法指令(ADD)减法指令(SUB)乘法指令(MPY)
乘法-累加/减指令(MAC/MAS)双字运算指令(DADD)
特殊用途指令2024年5月11日DSP原理及应用64第3章TMS320C54x的指令系统3.3.2算术运算指令(1)加法指令
ADDS用于无符号数的加法运算ADDC用于带进位的加法运算(如32位扩展精度加法)ADDM专用于立即数的加法ADD、ADDC和ADDM运算结果受SXM和OVM的影响,结果影响C和OVdstADDS运算结果不受SXM影响2024年5月11日DSP原理及应用65第3章TMS320C54x的指令系统加法指令功能2024年5月11日DSP原理及应用662024年5月11日DSP原理及应用67第3章TMS320C54x的指令系统减法指令功能序号指令功能说明1SUBSmem,srcsrc=src-Smem从累加器中减去操作数2SUBSmem,TS,srcsrc=src-Smem<<TS从累加器中减去移位后的操作数3SUBSmem
,16
,src[,dst]dst=src-Smem<<16累加器减去左移16位的操作数4SUBSmem,[,SHIFT],src[,dst]dst=src-Smem<<SHIFT操作数移位后与累加器相减5SUBXmem
,SHFT
,srcsrc=src-Xmem<<SHFT操作数移位后与累加器相减6SUBXmem
,Ymem
,dstdst=Xmem<<16-Ymem<<16两操作数分别左移16位后相减送至累加器7SUB#lk,[,SHFT],src[,dst]dst=src-#lk<<SHFT长立即数移位后与累加器相减8SUB#lk,16,src[,dst]dst=src-#lk<<16长立即数左移16位与累加器相减9SUBsrc,[,SHIFT][,dst]dst=dst-src<<SHIFT目标累加器减去移位后的源累加器10SUBsrc,ASM[,dst]dst=dst-src<<ASM源累加器按ASM移位与目标累加器相减11SUBBSmem,srcsrc=src-Smem-C累加器与操作数带借位减操作12SUBCSmem,srcIf(src-Smem<<15)>0,src=(src-Smem<<15)<<1+1Elsesrc=src<<1条件减法操作13SUBSSmem,srcsrc=src-uns(Smem)累加器与符号位不扩展的操作数减操作(2)减法指令
2024年5月11日DSP原理及应用682024年5月11日DSP原理及应用692024年5月11日DSP原理及应用70编程实现TEMP3=TEMP1+TEMP2编程实现TEMP1/TEMP2=TEMP3…TEMP4课堂作业2024年5月11日DSP原理及应用71‘C54X中无专门的除法指令,有两种方法来完成除法用乘法来代替,除以某个数相当于乘以其倒数,对于除以常数特别适用。使用SUBC指令,重复16次减法完成除法运算。例:Temp1/Temp2整数除法Ldtemp1,B;将被除数temp1装入B寄存器的低16位rpt #15 ;重复SUBC指令16次以完成除法Subctemp2,B;B中高16位是余数,低16位是商stl B,temp3;将商(B的低16位)存入变量temp3sth B,temp4;将余数(B的高16位)存入变量temp4注:若为小数除法,被除数一定小于除数,执行SUBC指令前,应将被除数装入A或B寄存器的高16位,而不是低16位。还应对商右移一位,得到正确的有符号数2024年5月11日DSP原理及应用72第3章TMS320C54x的指令系统乘法指令功能序号指令功能说明1MPYSmem,dstdst=T*SmemT寄存器与操作数相乘2MPYRSmem,dstdst=rnd(T*Smem)T寄存器与操作数带舍入相乘3MPYXmem,Ymem,dst
dst=Xmem
*Ymem,T=Xmem两操作数相乘4MPYSmem,#lk,dstdst=Smem
*#lk,T=Smem长立即数与操作数相乘5MPY#lk,dstdst=T*#lk长立即数与T寄存器相乘6MPYAdstdst=T*A(32-16)T寄存器与累加器A高位相乘7MPYASmemB=Smem*A(32-16),T=Smem操作数与累加器A高位相乘8MPYUSmem,dstdst=uns(T)*uns(Smem)无符号数相乘9SQURSmem,dstdst=Smem
*Smem,T=Smem操作数的平方10SQURA,dstdst=A(32-16)*A(32-16)累加器A高位的平方2024年5月11日DSP原理及应用732024年5月11日DSP原理及应用74整数乘法时FRCT标志清零,乘积结果不需左移小数乘法时,状态位FRCT将其设置为1时,系统自动将乘积结果左移一位。整数乘法举例
rsbx FRCT ;清FRCT标志,准备整数乘ld temp1,T ;将变量temp1装入T寄存器mpy temp2,a ;完成temp2*temp1
stl a,temp3;乘积结果的低16位存入变量temp3小数乘法举例
ssbxFRCT ;FRCT=1,准备小数乘法
ldtemp1,16,a;将变量temp1装入寄存器A的高16位
mpyatemp2 ;完成temp2乘寄存器A的高16位,;结果在B中,同时将temp2装入T寄存器
sth b,temp3 ;将乘积结果的高16位存入变量temp32024年5月11日DSP原理及应用754、乘加和乘减指令2024年5月11日DSP原理及应用76第3章TMS320C54x的指令系统(5)双字算术运算指令
双字算术运算指令共计6条,完成双16位数的加减运算。对于长操作数,辅助寄存器的增减值为2。2024年5月11日DSP原理及应用77第3章TMS320C54x的指令系统3.3.3逻辑运算指令(5)测试操作指令
2024年5月11日DSP原理及应用782024年5月11日DSP原理及应用79第3章TMS320C54x的指令系统3.3.4程序控制指令1.分支转移指令
分支转移指令共有6条,可实现无条件转移、有条件转移和远程转移等。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度化妆品研发与销售合作合同模板4篇
- 2025年度旅游度假村场地租赁及基础设施改造合同4篇
- 2025年度车辆过户合同协议书(含检测)
- 2025年度舞台搭建安全责任与施工管理合同
- 2025年度电子商务平台销售折扣与品牌推广合同
- 二零二五年度淘宝电商合作运营合同
- 2025年度跨境电商门市房租赁合同(国际物流支持)
- 2025年度二零二五年度试用期员工试用期合同解除与赔偿合同
- 二零二五年度汽车抵押贷款担保合同
- 《溜索》课时同步练(解析版)
- 不同茶叶的冲泡方法
- 光伏发电并网申办具体流程
- 基本药物制度政策培训课件
- 2025年中国华能集团限公司校园招聘高频重点提升(共500题)附带答案详解
- 建筑劳务专业分包合同范本(2025年)
- GB/T 45002-2024水泥胶砂保水率测定方法
- 广东省广州海珠区2023-2024学年八年级上学期期末数学试卷(含答案)
- 飞行原理(第二版) 课件 第10章 高速空气动力学基础
- 广西《乳腺X射线数字化体层摄影诊疗技术操作规范》
- 山西省2024年中考道德与法治真题试卷(含答案)
- 五年(2020-2024)高考地理真题分类汇编(全国版)专题12区域发展解析版
评论
0/150
提交评论