第3章指系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第3章指系统.ppt》由会员分享,可在线阅读,更多相关《第3章指系统.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、D S P D S P 技技 术术 及及 应应 用用 第三章:TMS320C54x指令系统指令系统7种寻址方式种寻址方式4种基本类型的汇编语言指令。种基本类型的汇编语言指令。第三章:TMS320C54x指令系统 教学要求:教学要求:教学要求:教学要求:C54x C54x DSPDSP的的指指令令系系统统包包括括汇汇编编语语言言指指令令、汇汇编编伪伪指指令令、宏宏指指令令,本本章章主主要要介介绍绍C54xC54x的的7种种寻寻址址方方式式和和汇汇编编语言指令,其他指令将在第语言指令,其他指令将在第4 4章介绍。章介绍。了了解解汇汇编编源源程程序序的的书书写写格格式式,掌掌握握常常见见的的7种种寻
2、寻址址方式,尤其是间接寻址方式。方式,尤其是间接寻址方式。掌掌握握算算术术运运算算、逻逻辑辑运运算算、程程序序控控制制、存存储储和和装装入入4种基本类型的汇编语言指令。种基本类型的汇编语言指令。第三章:C54x指令系统_3.1 3.1 汇编源程序格式汇编源程序格式 C54xC54x汇编语言语句汇编语言语句格式如下(格式如下(4个部分):标号标号标号标号:指令指令指令指令 操作数列表操作数列表操作数列表操作数列表;注释;注释;注释;注释 beginbegin:LD#40LD#40,AR1AR1;将立即数;将立即数;将立即数;将立即数4040传送给传送给传送给传送给ARlARl其中其中其中其中:(
3、1)(1)标号标号标号标号供本程序的其他部分或其他程序调用。供本程序的其他部分或其他程序调用。标标号号一一般般为为可可选选项项,若若使使用用则则必必须须从从源源语语句句的的第第一一列列开开始始;一一个个标标号号允允许许最最多多有有3232个个字字符符(字字母母、数数字字等等,不不能能用用数数字字开开头头),大小写敏感;标号后可跟一个,大小写敏感;标号后可跟一个“:”,也可不跟。,也可不跟。如果不用标号,则第一列上必须是空格、分号或星号。如果不用标号,则第一列上必须是空格、分号或星号。(2)(2)指令域指令域指令域指令域包括以下指令码之一:包括以下指令码之一:助记符指令助记符指令 (如如STMS
4、TM,MACMAC,MPVDMPVD,STL)STL);汇编伪指令汇编伪指令(如如.data.data,.list.list,.set).set);宏指令宏指令(如如.macro.macro,.varvar,.mexitmexit);宏调用。宏调用。注注:作作为为助助记记符符指指令令,一一般般用用大大写写;汇汇编编伪伪指指令令和和宏宏指指令令,以以句句点点“.”.”开开始,且为小写。始,且为小写。第三章:C54x指令系统_3.1 3.1 汇编源程序格式汇编源程序格式 (3)(3)操操操操作作作作数数数数可可以以是是常常量量、符符号号,或或是是常常量量和和符符号号的的混混合表达式,操作数之间用逗
5、号分开。合表达式,操作数之间用逗号分开。汇汇编编器器允允许许在在操操作作数数前前使使用用前前缀缀来来指指定定操操作作数数(常常数、符号或表达式数、符号或表达式)是地址还是立即数或间接地址。是地址还是立即数或间接地址。前缀的使用规则如下:前缀的使用规则如下:前缀前缀#表示其后的操作数为立即数。表示其后的操作数为立即数。例如:例如:LabelLabel:ADD#123ADD#123,A A;第三章:C54x指令系统_3.1 3.1 汇编源程序格式汇编源程序格式 前缀前缀*表示其后的操作数为间接地址。表示其后的操作数为间接地址。例如:例如:LabelLabel:LD *AR4LD *AR4,A A;
6、以以AR4AR4的内容为地址,将该地址的内容装入累加器的内容为地址,将该地址的内容装入累加器A A 前前缀缀 表表示示其其后后的的操操作作数数是是采采用用直直接接寻寻址址或或绝绝对对寻寻址的地址。址的地址。例如:例如:ADD#10,XYZ ADD#10,XYZ (4)(4)注释注释注释注释可以从一行的任一列开始直到行尾。可以从一行的任一列开始直到行尾。任一任一ASCIIASCII码码(包括空格包括空格)都可以组成注释。都可以组成注释。如果注释从第一列开始,用如果注释从第一列开始,用“;”号或号或“*”“*”号开号开头。头。第三章:C54x指令系统_3.2 3.2 指令集符号与意义指令集符号与意
7、义 TMS320C54xTMS320C54x的指令系统符号和意义见的指令系统符号和意义见表表3 3-1 1 第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 寻寻寻寻址址址址方方方方式式式式:指指当当CPUCPU执执行行指指令令时时,寻寻找找指指令令所所指指定定的参与运算的操作数的方法。的参与运算的操作数的方法。作作用用:可可以以根根据据程程序序要要求求采采用用不不同同的的寻寻址址方方式式,以以提提高高程程序序的的速速度度和和代代码码效效率率。不不同同的的寻寻址址方方式式为为编编程程提提供了极大的柔性编程操作空间,供了极大的柔性编程操作空间,第三章:C54x指令系统_3.3 3
8、.3 寻寻 址址 方方 式式C54C54共有共有7 7 7 7种种种种基本寻址方式基本寻址方式立即寻址立即寻址绝对寻址绝对寻址累加器寻址累加器寻址直接寻址直接寻址间接寻址间接寻址存储器映像寄存器寻址存储器映像寄存器寻址堆栈寻址堆栈寻址第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 1.1.立即寻址立即寻址含义含义含义含义:指令中已包含有执行指令所需的操作数;:指令中已包含有执行指令所需的操作数;用途用途用途用途:主要用于:主要用于R R或或M M的初始化;的初始化;说明说明说明说明:在数值或符号前加在数值或符号前加#表示立即数;表示立即数;立即数有两种形式立即数有两种形式:3
9、、5、8、9位短立即数;位短立即数;16位长立即数位长立即数 例如:例如:LD#10,A;LD#10,A;立即数立即数1010AA累加器累加器 RPT#99;将紧跟在后面的语句重复;将紧跟在后面的语句重复99+1次次第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 2.2.绝对寻址绝对寻址 含义含义含义含义:指令中包含所需寻址的:指令中包含所需寻址的M M单元地址或单元地址或I/OI/O端口地址;端口地址;用途用途用途用途:利用:利用1616位地址寻址位地址寻址M M或或I/OI/O 说明说明说明说明:绝对寻址的四种类型:绝对寻址的四种类型 数据存储器寻址:程序标号数据存储器寻
10、址:程序标号oror数据,表示数据数据,表示数据M M地址地址 如:如:MVKD DATAMVKD DATA,*AR5AR5;(DATADATA)(AR5)(AR5)第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 程序存储器寻址:程序存储器寻址:如:如:MVPD TABLEMVPD TABLE,*AR7-AR7-;(TABLETABLE)(AR7)and AR7=AR7-1(AR7)and AR7=AR7-1 I/O I/O端口寻址(端口寻址(2 2条)条)如:如:PORTR FIFOPORTR FIFO,*AR5AR5;从端口从端口FIFOFIFO读数据读数据(AR5AR5
11、)PORTW*AR2PORTW*AR2,BOFOBOFO;将(将(AR2AR2)BOFOBOFO端口端口 *(lklk)寻址:用一个符号或常数确定一个寻址:用一个符号或常数确定一个数据数据M M地址地址 如:如:LD *(BUFFER),A;LD *(BUFFER),A;(BUFFERBUFFER)A A 注:适用于支持单数据存储器操作数(Smem)的指令,访问数据空间的任意单 元而不改变DP的值,不用对AR初始化 第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 3.3.累加器寻址累加器寻址 含义含义含义含义:用:用累加器的数据作为地址累加器的数据作为地址来来读写读写程序程序
12、存储器存储器;用途用途用途用途:累加器对存放数据的程序存储器寻址;:累加器对存放数据的程序存储器寻址;说明说明说明说明:累加器内容的低累加器内容的低1616位作为程序存储器的地位作为程序存储器的地址;址;仅有两条指令用该寻址方式:仅有两条指令用该寻址方式:READAREADA;WRITAWRITA;如:如:READA READA SmemSmem;以以A A中的数为地址,从中的数为地址,从PMPM中读一个数中读一个数由由SmemSmem所指的所指的DMDM中中 WRITA WRITA SmemSmem;SmemSmem所指的所指的DMDM中的数中的数以以A A中的数为地址的中的数为地址的PMP
13、M中中第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 4.4.直接寻址直接寻址 含含含含义义义义:用用指指令令中中包包含含的的数数据据M M地地址址的的低低7 7位位(偏偏移移地地址址值值)+基基地地址址 1616位位数据存储器数据存储器地址地址。基地址基地址基地址基地址:DP_数据页指针数据页指针SP_堆栈指针堆栈指针 用途用途用途用途:利用数据页指针和堆栈指针寻址:利用数据页指针和堆栈指针寻址DMDM。指令代码格式指令代码格式指令代码格式指令代码格式:注:第注:第7位确定了寻址方式,若位确定了寻址方式,若I=0,表示指令使用直接寻址方式,表示指令使用直接寻址方式第三章:C
14、54x指令系统_3.3 3.3 寻寻 址址 方方 式式 说明说明说明说明:地址形成地址形成 当当ST1ST1中中的的CPL=0CPL=0时时,由由ST0ST0中中的的DPDP值值(9(9位位地地址址)与与指指令令中的中的7 7位地址一道形成位地址一道形成1616位数据存储器地址。位数据存储器地址。当当ST1中的中的CP=时,将指令中的时,将指令中的7位地址与位地址与16位位堆栈指针堆栈指针SP相加,形成相加,形成16位的数据存储器地址。位的数据存储器地址。第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 说明说明说明说明:该方式可在不改变该方式可在不改变DPDP或或SPSP的情
15、况下,随机寻址的情况下,随机寻址128128个单元个单元;因为因为DP值的范围是从值的范围是从0到到511,把存储器分成,把存储器分成512页。页。指令长度只需指令长度只需1 1个字(个字(1616位)位);举例举例举例举例:RSBX CPL;RSBX CPL;CPL=0CPL=0 LD#2,DP;LD#2,DP;DPDP指向第指向第2 2页页 LD 60H,16,A;LD 60H,16,A;第第2 2页的页的60H60H单元内容装入单元内容装入A A高高1616位位 第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 5.5.间接寻址间接寻址含义含义含义含义:按辅助:按辅助R
16、R中的内容寻址中的内容寻址数据数据M M用途:用途:主要用在需要主要用在需要存储器地址以步进方式连续变化存储器地址以步进方式连续变化的场合。的场合。说明说明说明说明:(:(1 1)地址形式:)地址形式:AR0AR0AR7AR7 (2 2)间间接接寻寻址址方方式式非非常常灵灵活活:可可在在一一条条指指令令中中访访问问两两个个DMDM单单元(能在两个独立的元(能在两个独立的M M读数据,或在一个读数据,或在一个M M读另一个读另一个M M单元写)单元写)(3)间接寻址有两种方式。)间接寻址有两种方式。单操作数间接寻址:从存储器中读或写一个单单操作数间接寻址:从存储器中读或写一个单16位数据操作数。
17、位数据操作数。双操作数间接寻址:在一条指令中访问两个数据存储单元。双操作数间接寻址:在一条指令中访问两个数据存储单元。第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式(1)单操作数间接寻址单操作数间接寻址单单操操作作数数寻寻址址是是一一条条指指令令中中,只只有有一一个个存存储储器器操操作作数数(即即从从存储器中只存取一个操作数存储器中只存取一个操作数),其指令的格式:,其指令的格式:其其中中:151515158 8 8 8位位是是指指令令的的操操作作码码;第第7 7位位I=1I=1I=1I=1,表表示示指指令令的的寻寻址址方方式式为为间间接接寻寻址址;6 6 6 63 3 3
18、3位位为为方方式式(MOD)(MOD),定定义义了了间间接接寻寻址址的的类类型型(P57P57表表3 3-3 3);2 2 2 20 0 0 0位位定定义义寻寻址址所所使使用用的的辅辅助助寄寄存存器器(如如AR0AR0AR7)AR7)。例例如如:LD LD *AR2+*AR2+,A A ;表表示示将将由由AR2AR2寄寄存存器器内内容容所所指指向向的的数数据据存存储储器器单单元元中中的的数数据传送到累加器据传送到累加器A A中,即(中,即(AR2AR2)AA,然后,然后AR2AR2中的地址加中的地址加1 1。MOD域:域:共有共有16种间接寻址的类型(表种间接寻址的类型(表3-3)域域操作码操
19、作码功能功能0000*ARxAddr=ARx可以将地址加可以将地址加1或减或减1,可以在指令执行存取操作前或后修改,可以在指令执行存取操作前或后修改要存取操作数的地址:要存取操作数的地址:0001*ARx-Addr=ARx,ARx=ARx-10010*ARx+Addr=ARx,ARx=ARx+10011*+ARxAddr=ARx+1,ARx=ARx+1可以将地址加一个可以将地址加一个16位偏移量:位偏移量:1100*ARx(lk)Addr=ARx+lk,ARx=ARx1101*+ARx(lk)Addr=ARx+lk,ARx=ARx+lk1111*(lk)Addr=lk用用AR0中的值中的值索引
20、寻址索引寻址:0101*ARx-0Addr=ARx,ARx=ARx-AR00110*ARx+0Addr=ARx,ARx=ARx+AR0以以B符号表示的符号表示的位倒序寻址:位倒序寻址:0100*ARx-0BAddr=ARx,ARx=B(ARx-AR0)0111*ARx+0BAddr=ARx,ARx=B(ARx+AR0)以以%符号表示的符号表示的循环寻址:循环寻址:1000*ARx-%Addr=ARx,ARx=circ(ARx-1)1010*ARx+%Addr=ARx,ARx=circ(ARx+1)1001*ARx-0%Addr=ARx,ARx=circ(ARx-AR0)1011*ARx+0%A
21、ddr=ARx,ARx=circ(ARx+AR0)1110*+ARx(lk)%Addr=circ(ARx+lk),ARx=circ(ARx+lk)第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 循环寻址循环寻址表示:表示:用用%表示,其辅助寄存器使用规则与其他寻址方式相同。表示,其辅助寄存器使用规则与其他寻址方式相同。用途:用途:在卷积、自相关和在卷积、自相关和FIR滤波器等许多算法中,都需要在存储滤波器等许多算法中,都需要在存储器中设置器中设置循环缓冲区循环缓冲区。它它是一个滑动窗,包含最近的数据,是一个滑动窗,包含最近的数据,若有新的数据到来,它将覆盖旧的数据。若有新的数
22、据到来,它将覆盖旧的数据。例如:循环指针在第一次的移动从例如:循环指针在第一次的移动从1,2,3,4,5,6,78;第二次是从第二次是从2,3,4,5,6,781;第三次是从第三次是从3,4,5,6,7812;循环寻址:循环寻址:实现循环缓冲区的关键。实现循环缓冲区的关键。第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 循环缓冲器主要参数循环缓冲器主要参数:长度计数器长度计数器(BKBK):):定义了循环缓冲区的大小定义了循环缓冲区的大小R R(R2R2N N););有有效效基基地地址址(EFBEFB):定定义义了了循循环环缓缓冲冲区区的的起起始始地地址址,即即ARxARx低
23、低N N位设为位设为0 0所得到的值;所得到的值;尾地址尾地址(EOBEOB):):定义了循环缓冲区的尾部地址定义了循环缓冲区的尾部地址;缓冲区索引缓冲区索引(IndexIndex):):当前当前ARxARx的低的低N N位;位;步长步长(StepStep):):一次加到辅助一次加到辅助R R或从辅助或从辅助R R中减去的值;中减去的值;例例如如,一一个个长长度度为为31个个字字的的循循环环缓缓冲冲区区必必须须开开始始于于最最低低5位位为为零零的的地址地址(即即XXXXXXXXXXX00000b),且赋值,且赋值BK=31。第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 循循
24、环环缓缓冲冲示示意意图图第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 循环寻址的算法循环寻址的算法:If0index+stepBK;Index=index+step;Elseifindex+stepBK;Index=index+step-BK;Elseifindex+step0;Index=index+step+BK;第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 使用循环寻址时,必须遵循以下三个原则:使用循环寻址时,必须遵循以下三个原则:循循循循环环环环缓缓缓缓冲冲冲冲区区区区的的的的长长长长度度度度 R2RBK;故:故:index=index+step
25、-BK=8+8-10=6(寻址寻址106H单元)单元)第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 循环寻址过程循环寻址过程第三章:C54x指令系统_3.3 3.3 寻寻 址址 方方 式式 位倒序寻址位倒序寻址 用用用用途途途途:主主要要用用于于FFT运运算算,可可提提高高FFT算算法法的的执执行行速速度和存储器的使用效率。度和存储器的使用效率。原原原原因因因因:当当FFT输输入入样样点点值值是是倒倒序序时时,输输出出是是顺顺序序;反反之之亦亦然然,采采用用位位码码倒倒序序寻寻址址的的方方式式恰恰好好符符合合FFT算算法法要求。要求。图1 N点DITFFT运算流图(N=8)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内