已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/4/13,1,主要内容,存储器寻址方式,汇编语言指令系统,2019/4/13,2,TMS320C54x的指令表示方法,C54x DS的助记符指令主要是由操作码和操作数两部分组成,在进行汇编以前,操作码和操作数都是用助记符表示。助记符指令的基本形式为: 操作码 操作数1,操作数2,操作数3 其中操作码指出指令应完成的何种操作,操作数表示参与指令操作的数,操作数包括源操作数和目的操作数,可以有多个,也可以没有,假设有2个操作数,则源操作数在操作数1的位置,目的操作数在操作数2的位置。操作数可以有多种表达形式,例如立即数、寄存器、程序地址、数据地址、I/O地址等,寻找操作数的方式称为寻址方式。 例如:LD #1Fh, A 这里LD为操作码,表示这是一条装载指令, #1Fh表示操作数1,它是源操作数, A表示操作数2,它是目的操作数。 该指令执行结果是将立即数#1Fh装载至累加器A中,,2019/4/13,3,访问的数据类型,单字(16位数),通过DB总线读取数据,通过EB总线写数据,双字(32位数)只有双精度和长字指令能寻址32位数,CPU通过CB总线读取数据高16位,通过DB总线读取数据的低16位 通过EB总线写32位数时,需要2个时钟周期,3.1存储器寻址方式,数据寻址反映了CPU对数据空间的访问能力,灵活多样的数据寻址往往会给程序编制带来极大的方便。 能够访问的数据类型有两种:,2019/4/13,4,图3-1 32位字的存储顺序,32位字的存储顺序,2019/4/13,5,寻址方式,立即寻址,绝对寻址,累加器寻址,直接寻址,间接寻址,存储器映射寄存器寻址,存储器寻址方式,堆栈寻址,2019/4/13,6,1 立即寻址,以指令中立即数为操作数,采用号作为前缀来表示立即数,立即数的长度取决于指令的类型,例:ld 0x80,A,存储器寻址方式,短立即数,长立即数,2019/4/13,7,2 绝对寻址,指令中含有所要寻找的操作数的16位存储单元地址。,16位地址表示形式: 地址标号,如:TABLE; 16位符号常量,如:89AB、1234。,用途:用于对速度要求较低的场合。,2019/4/13,8,2 绝对寻址,绝对寻址有四种类型 : 数据存储器地址(dmad)寻址; 程序存储器地址(pmad)寻址; 端口(PA)寻址; *(1k)寻址。,2019/4/13,9,MVKD EXAM1, * AR5;,数据存储器的 16位地址dmad值,将数据存储器EXAM1地址单元中的数据复制到AR5寄存器所指向的数据存储单元中。,MVPD TABLE, * AR2;,程序存储器的 16位地址pmad值,将程序存储器TABLE地址单元中的内容复制到AR2寄存器所指向的数据存储单元中。,PORTR FIFO, * AR5;,I/O端口地址PA,把一个数从端口为FIFO的I/O口复制到AR5寄存器所指向的数据存储单元中。,LD *(PN), A ;,把地址为PN的数据单元中的数据装到累加器A中。,注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。,2019/4/13,10,3 累加器寻址-指把累加器中的数值作为地址来对程序存储访问的方式,相关指令,reada Smem writa Smem Reada-根据累加器A指定的地址从相应的程序存储器中读取数据,并将其写入到Smem指定的数据存储器中, Writa-把Smem指定的数据存储器的数值取出,按照A所指定的地址将它写入相应的程序存储器单元中。,采用单循环指令与上述指令配合时,累加器A的数值会自动增加,因此可以方便的实现程序空间和数据空间数据的交换,存储器寻址方式,2019/4/13,11,4 直接寻址,C54x DSP数据存储器按块(页)组织,每80H(128)个存储单元为一个块(页),64K字的数据存储器可分成512页,数据分页见图。,2019/4/13,12,直接寻址所要寻址的数据存储器16位地址是由基地址和偏移地址构成。偏移地址是由指令中的7位地址构成,基地址由数据页指针DP或堆栈指针SP构成。直接寻址方式可以在不改变 DP或SP的情况下,随机地寻找 128个存储单元中的任何一个单元地址,且直接寻址的指令只需要一个字,寻址速度快,能进行流水线并行操作。 直接寻址地址表示形式可以有以下两种: 变量前加,如x; 在偏移量前加,如5。,2019/4/13,13,通过设置ST1中的CPL位,CPL=0,选择DP,CPL=1选择SP。,直接寻址的地址形成 (见P34),存储器寻址方式,2019/4/13,14,地址形成过程:,当CPL=0时,,高9位,低7位,16位数据 存储器地址,2019/4/13,15,地址形成过程:,当CPL=1时,,高9位,低7位,16位数据 存储器地址,SP+dmad,2019/4/13,16,指令格式,利用数据指针DP和堆栈指针SP寻址。,指令格式:,2019/4/13,17,寻址范围,DP地址的范围是从0511(29-1),将存储器分成512页。,7位dmad范围是从0127, 允许每页有128个可以访问的单元。,SP可以指向存储器中的任意一个地址064k。 Dmad是距栈顶的数,可以指向当前页中具体的单元, 允许访问存储器任意基地址中的连续的128个单元,2019/4/13,18, 变量前加,如x; 在偏移量前加,如5。,利用直接寻址可以在不改变DP或SP的情况下,随机寻址128个存储单元中的任何一个单元。,直接寻址的优点:每条指令只需要一个字。,直接寻址标识:,2019/4/13,19,举例,例1:数据存储器存储数据如图所示,采用数据页指针DP直接寻址,完成x,y单元的两个数据求和。,RSBX CPL,LD #3,DP,LD x,A,ADD y,A,;CPL复位 ;立即数3赋给DP ;x单元的数据送入A ;完成x和y单元的数 据相加,LD #3,DP,LD #3,DP,0 0000 0011,LD x,A,LD x,A,111 1111,0 0000 0011,111 1111,01FF,1000,00 0000 1000,01FF,1000,ADD y,A,000 0000,0 0000 0011,000 0000,0180,0001,0001,+,1001,0180,0001,1001,00 0000,ADD y,A,ADD y,A,LD #4,DP,LD #4,DP,RSBX CPL,LD #3,DP,0 0000 0011,LD x,A,111 1111,00 0000 1000,LD #4,DP,0 0000 0100,ADD y,A,000 0000,+,0,0,5,1,00 0000,00 0000 1500,2019/4/13,20,3.1.4 直接寻址,例2:数据存储器存储数据如图所示,利用堆栈指针SP直接寻址,求堆栈中距栈顶两个数x,y的和。,SSBX CPL,LD 1,A,ADD 2,A,;CPL置位 ;x单元的数据送入A ;完成x和y单元的数 据相加,SP,x:,y:,SP,x:,y:,SSBX CPL,LD 1,A,x:,0200H,1=0201H,0100,00 0000 0100,0100,x:,ADD 2,A,2=0202H,y:,0050,0,00 0000,5,1,0,+,y:,0050,00 0000 0150,2019/4/13,21,直接寻址特点:, 所寻址数据存储器的16位地址是由DP或SP 与7位偏移地址dmad构成; 寻址速度快,能进行流水线并行操作。,用途:主要用于要求运算速度较快的场合。,注意: 上述两种直接寻址方式是相互排斥的; 采用DP寻址时,要注意数据所在的页面 指针。,2019/4/13,22,5、 间接寻址,利用辅助寄存器中数值作为绝对地址 (C5400系列有8个辅助寄存器),主要用于按某种固定方式对数据空间的连续访问64K16bit数据空间任一单元都可以通过一个辅助寄存器中的16bit地址进行访问,修改方式可以为后加、后减、特定步长,寻址方式最为灵活,2019/4/13,23,灵活的寻址方式,按辅助寄存器内地址更新方式分类,按寻址的辅助寄存器数目来分类,线性寻址 (通常的顺序访问),循环寻址 (把某段数据区视为一个头尾相接的环,地址的变化始终在该段数据区范围内),单数据(Smem)方式 (在一条指令中只利用一个辅助寄存器间接寻址),双数据(Dmem)方式 (在一条指令中同时利用两个辅助寄存器间接寻址),2019/4/13,24,单数据间接寻址结构,单操作数寻址的结构如图所示,辅助寄存器中地址的产生是通过辅助寄存器算术单元(ARAU)和相关的硬件来完成的,ARAU完成对16比特无符号地址的算术运算,其源数据来自辅助寄存器、BK、1k和地址更新方式。,辅助寄存器算术单元,2019/4/13,25,间接寻址范围,根据辅助寄存器(AR0AR7)给出的16位地址进行寻址。,每一个辅助寄存器都可以用来寻址64K字数据存储空间中任何一个单元。,两个辅助寄存器算术运算单元(ARAU0和ARAU1) 可以根据辅助寄存器的内容进行操作,完成16位无符号数算术运算。,2019/4/13,26,可完成的操作:, 用单指令对存储器进行16位数据的读操作 或写操作;, 用单指令可以完成对两个独立的数据存储 单元的读操作;, 用单指令可以读和写两个连续的数据存储 单元;, 用单指令可以在读一个数据存储单元的同 时,向另一个存储单元进行写操作。,2019/4/13,27,指令格式,1. 单操作数寻址,用来完成存储单元中16位单数据的读写操作。,2019/4/13,28,注1:寻址16位字时增/减量为1,32位字时增/减量为2。 注2:这种方式只能用写操作指令。 注3:这种方式不允许对存储器映像寄存器寻址。,2019/4/13,29,注1:寻址16位字时增/减量为1,32位字时增/减量为2。,2019/4/13,30,注3:这种方式不允许对存储器映像寄存器寻址。,2019/4/13,31,说明: * ARx-线性寻址, ARx的内容为数据存储器地址 * ARx- -线性寻址,寻址结束后,ARx地址减1 * ARx+ -线性寻址,寻址结束后,ARx地址加1 * +ARx -线性寻址,寻址以前,ARx地址加1 * ARx-0B -比特翻转寻址,寻址结束后,用位倒序进位 的方法从ARx中减 去AR0的值 * ARx+0B -比特翻转寻址,寻址结束后,用位倒序进位 的方法从ARx中加 上AR0的值 * ARx-0 -线性寻址,寻址结束后,ARx地址减AR0的值 * ARx+0 -线性寻址,寻址结束后,ARx地址加AR0的值 * ARx-% -循环寻址,寻址结束后,按循环减的方法将AR0中的值减1。 * ARx+% -循环寻址,寻址结束后,按循环加的方法将AR0中的值加1。 * ARx+0% -循环寻址,寻址结束后,按循环加的方法将AR0中的值加到 ARx * ARx-0%-循环寻址,寻址结束后,按循环减的方法将AR0中的值减ARx,2019/4/13,32,特殊的间接寻址功能:,在存储器中设置一个缓冲区作为滑动窗,来保存最新的一批数据,并用新的数据覆盖旧的数据,实现循环寻址。,(1) 循环寻址,循环寻址原理,ARx用来存放要寻址的数据缓冲区地址, 循环缓冲容量寄存器BK用来放置循环缓冲区的长度R。 循环寻址有效基地址(EFB)指向数据循环缓冲区的首地址,是通过把所选用的辅助寄存器的低N位置成0而得到的, 缓存区的结束地址(EOB)指向数据循环缓冲区的结束地地址,是通过把辅助寄存器的低N位替换成BK的低N位得到的。 ARx指向要寻址的数据循环缓冲区地址。循环缓冲区的偏移量(index)就是ARx的低N位;,2019/4/13,33,循环寻址的步长(step)就是加到辅助寄存器ARx或从辅助寄存器ARx中减去的值,由间接寻址指令表达式给出。例如*ARx-% 、* ARx+% ,步长(step)为1,ARx+0%、* ARx-0%,步长(step)由AR0指定,*+ARx(lk),步长(step)由偏移值lk所指定。 循环寻址实现以下算法: If 0 index + step BK: index = index + step Else if index + step BK: index = index + step - BK Else if index + step 0: index = index + step + BK 通常步长小于BK,其大小与所用指令有关;若步长为正,进行循环加寻址;否则进行循环减寻址;若BK=0,则为不作修正的辅助寄存器间接寻址。,2019/4/13,34,循环寻址使用方法,确定循环缓冲区长度寄存器BK 设循环缓冲区的长度为R,将其装入循环缓冲区长度寄存器BK中,可通过指令STM #1K,BK 设定。 建立缓冲区首地址 一个循环缓冲区的首地址必须满足以下条件:假设一个循环缓冲区的容量是R,那么就存在一个整数N(N是满足2NR的最小整数),则该缓存区的上边界地址的低位必须是N个0,例如BK的值是32,若要使2N32, 则N=6。因此缓存区的首地址必须是XXXX XXXX XX00 00002。 循环寻址操作过程 首先要指定一个ARx指向循环缓冲区,根据ARx的低N位作为循环缓冲区的偏移量进行规定的寻址操作。寻址完成后,再根据循环寻址算法修正偏移量,并返回ARx的低N位。,2019/4/13,35,2019/4/13,36,建立滑动窗口 循环寻址是DSP的一个关键技术,它广泛应用于卷积、相关和线性滤波等算法。循环缓冲区可以看成是一个滑动窗口,它有一个专门的指针总是指向最旧的的数据,每当状态更新后,最新的数据将覆盖最旧的数据,而指针移向“次旧”的数据,即窗口滑动。,(1)循环寻址(续),循环缓冲区的偏移量(index)就是ARx的低N位;循环寻址的步长(step)就是加到辅助寄存器ARx或从辅助寄存器ARx中减去的值,由间接寻址指令表达式给出。例如*ARx-% 、* ARx+% ,步长(step)为1,ARx+0%、* ARx-0%,步长(step)由AR0指定,*+ARx(lk),步长(step)由偏移值lk所指定。,2019/4/13,37,实例 用AR2作为寻址寄存器,对一个长度为6的数据缓冲区进行循环寻址,用以下指令实现上述功能: STM #6,BK LD *+AR2(4)%,A STL A,*+AR2(4)% 因为BK=6,根据2NR,求得N=3,即数据缓冲区首地址的低3位必须是0,假设AR2=200H,则index=0,step=4,根据上面给出的循环寻址算法可计算循环寻址后的寻址单元地址: 执行第2条指令时:因index=index+step=4 BK,则 index=index+step=4,寻址204h单元 执行第3条指令时:因index=index+step=4+4=8 BK,则 index=index+step- BK=4+4-6=2, 寻址202h单元,2019/4/13,38,(2)位倒序寻址(比特翻转寻址),寻址地址= ARx +AR0, AR0存放整数N,是FFT点数的一半, 辅助寄存器ARx指向数据存放的物理单元, 注意:地址以位倒序的方法产生,即进位是从左向右 例:AR2指向FFT数据区,且数据区的首地址为01100000B,数据区大小为16,则AR0的值为00001000B,将AR0和AR2相加,生成比特翻转的地址,其结果如下: *AR2+0B;AR2=0110 0000 (第0值) *AR2+0B;AR2=0110 1000 (第1值) *AR2+0B;AR2=0110 0100 (第2值) *AR2+0B;AR2=0110 1100 (第3值) *AR2+0B;AR2=0110 0010 (第4值) *AR2+0B;AR2=0110 1010 (第5值) *AR2+0B;AR2=0110 0110 (第6值) *AR2+0B;AR2=0110 1110 (第7值),2019/4/13,39,比特翻转寻址(续) 下表是4位地址的比特翻转地址与原始地址的对应关系:,存储器寻址方式,实例 向PA口连续16次输出数据,该串数据采用位码倒序的间接寻址方法获得。程序如下: RPT #15 ;重复执行下条指令16次 PORTW *AR1+0B,PA ;采用位码倒序的间接寻址,向PA口输出数据,2019/4/13,40,2019/4/13,41,5 间接寻址,2. 双操作数寻址,用于完成执行2次读操作或者1次读和1次写的并行存储操作(用表示)。这些指令代码都是1个字长,而且只能以间接寻址方式进行操作。,两个数据存储器操作数由Xmem和Ymem表示。,Xmem:读操作数;,Ymem:,在两次读操作的指令中,表示另一个读操作数;,在一次读和一次写的指令中,表示写操作数。,2019/4/13,42,2. 双操作数寻址,指令格式:,2019/4/13,43,2. 双操作数寻址,2019/4/13,44,2. 双操作数寻址,在指令中,由于只有2位可以用于选择辅助寄存器,所以根据Xar或Yar的值可以选择4个寄存器。,2019/4/13,45,间接寻址特点:通过辅助寄存器和辅助寄存器指针来寻址数据空间存储单元,并自动实现增量、减量、变址寻址、循环寻址,共有16种修正地址的方式。,用途:用于需要按固定步长寻址的场合。,5 间接寻址,2019/4/13,46,6 存储器映像寄存器寻址,是一种不考虑DP和SP为何值,以0为基地址来访问MMR的寻址方式。 主要用于修改存储器映像寄存器的内容。,1.采用直接寻址方式,2.采用间接寻址方式,高9位数据存储器地址置0,利用指令中的低7位地址直接访问MMR。,高9位数据存储器地址置0,按照当前辅助寄存器ARx的低7位地址访问MMR。,2019/4/13,47,6 存储器寻址方式,2019/4/13,48,6 存储器映像寄存器寻址,C54x共有8条指令可以进行MMR寻址。,LDM MMR,dst ;将MMR加载到累加器 MVDM dmad,MMR ;数据存储器向MMR传送数据 MVMD MMR,dmad ;MMR向指定地址传送数据 MVMM MMRx,MMRy ;MMRx向MMRy传送数据 POPM MMR ;将数据从栈顶弹至MMR PSHM MMR ;将MMR数据压入堆栈 STLM src,MMR ;累加器低位存入MMR STM #lk,MMR ;长立即数lk存入MMR,2019/4/13,49,6 存储器映像寄存器寻址,MMR寻址特点:, 寻址速度快,对MMR执行写操作开销小; 可直接利用MMR的名称快速访问数据存储空间的0页资源; 只能寻址数据空间的0页单元。,用途:主要用于不改变DP、SP的情况下,修改MMR中的内容。,2019/4/13,50,7 堆栈寻址,堆栈:当发生中断或子程序调用时,用来自动保存PC内容以及保护现场或传送参数。,C54x的堆栈是向低地址生长,并由16位堆栈指针SP管理。SP总是指向栈顶。,堆栈寻址:利用SP指针,按照先进后出的原则进 行寻址。,当进栈操作时,SP先减小,然后数据进入堆栈;,当出栈操作时,数据先出栈,然后SP增加。,2019/4/13,51,举例,进栈操作时,SP先减小,然后数据进入堆栈;, SPSP-1,使SP指向03FEH;,SP,03FEH, 数据进栈,SP=03FEH。,13FF,SP,出栈操作时,数据先出栈,然后SP增加。, SP=03FEH,数据出栈;,SP,13FF, SPSP+1,使SP指向03FFH。,SP,2019/4/13,52,7 堆栈寻址,采用堆栈寻址的指令:,PSHD Smem ;将Smem中的数据压入堆栈 PSHM MMR ;将MMR中的数据压入堆栈 POPD Smem ;将数据从栈顶弹至Smem中 POPM MMR ;将数据从栈顶弹至MMR中,2019/4/13,53,3.2 TMS320C54x的指令系统,3.2.1 指令系统概述,指令集的符号和缩写(见P42表3-9、3-10、3-11),指令系统的操作符,2019/4/13,54,表4-23 指令系统中的符号和缩写,2019/4/13,55,2019/4/13,56,表4-24 操作码中的符号和缩写,2019/4/13,57,指令系统的汇编语法,语法、操作数、机器码、执行结果、状态位的影响、指令字长、指令执行的周期数、单指令重复执行情况、流水线冲突情况,3.2.2指令系统分类 (TMS320C54x的指令一共有129条),算术运算指令,逻辑运算指令,程序控制操作指令,加载和存贮操作指令,2019/4/13,58,表4-27 常用指令助记符,2019/4/13,59,1 算术运算指令 算术运算指令是实现数学计算的重要指令集合。 C54x的算术指令具有运算功能强、指令丰富等特点,包括:,加法指令(ADD) 减法指令(SUB) 乘法指令(MPY) 乘法-累加/减指令(MAC/MAS) 双字运算指令(DADD) 特殊用途指令,2019/4/13,60,说明,加法指令 操作码:ADD、ADDC、ADDM和ADDS,具体说明见表3-13。 如果目的累加器dst被指定,则结果存放在dst中;如果没有被指定,则结果存放在源累加器src中。 可完成带移位的加法,移位操作数的范围为-16SHIFT15,0SHFT15。 正数为左移位,左移位低位添0,高位受SXM位影响。如果SXM1,则高位进行符号扩展;如果SXM0,则高位清零。 负数为右移位,受SXM位影响。如果SXM1,则高位进行符号扩展;如果SXM0,则高位清零。,长立即数,符号位不扩展,表4-28 加运算指令,2019/4/13,61,2019/4/13,62,【例1】 ADD *AR3+,14,A,1500H14+00 0000 1200H=00 0101 0100 0000 0000 0000 0000 0000=05400000,2019/4/13,63,减法指令 操作码:SUB、SUBB、SUBC和SUBS,具体说明见表3-14。 用SUBC指令,再重复16次减法运算,可实现两个无符号数的除法运算。减法指令中状态位与加法指令中的基本相同。,带借位的减法运算,含条件的移位减法,无符号数减法,表4-30 减法算指令,2019/4/13,64,2019/4/13,65,【例2】 SUB #12345,8,A,B,A-3039h8=00 0000 1200h-00 0030 3900h= FF FFCF D900h,C54x DSP没有除法硬件也不提供单周期除法指令,用SUBC指令,加上重复指令RPT,重复16次减法运算,可实现两个无符号数的除法运算。,实例4.8 实现无符号整数除法num/den: LD num,A ;将被除数num装入累加器A的低16位 RPT #15 ;重复执行指令SUBC 16次 SUBC den,A ;进行条件移位减法,完成除法 STL A, ;将商存于变量quot中 STH A,quot1 ;将余数存于quot1中,2019/4/13,66,2019/4/13,67,乘法指令 C54x的指令系统提供了10条乘法运算指令,其运算结果都是32位的,存放在累加器A和B中,如表3-15所示 操 作 码 MPY、MPYR、MPYA、MPYU、SQUR 参与运算的乘数可以是T寄存器、立即数、存储单元和累加器A或B的高16位。 如果是无符号数相乘,则使用一条专用于无符号数相乘的指令,即MPYU指令,其他指令都是有符号数的乘法,实例 实现整数乘法 y=a x LD a,T ;将a装入T寄存器 RSBX FRCT ;清FTCT标志位,准备整数乘 MPY x,A ;完成a与x相乘,结果放入A累加器(32位), STL A, y ;计算结果存入y中 实例4.10 实现小数乘法 temp3=temp1temp2 SSBX FRCT ;置FRCT标志位,准备小数乘法 LD temp1,16,A ;将变量temp1装入累加器A的高16位 MPYA temp2 ;完成temp2与累加器A的高16位相乘,结果放 入B累加器,并将temp2装入T寄存器 STH B,temp3 ;将乘积结果的高16位存入变量temp3,2019/4/13,68,2019/4/13,69,乘法-累加和乘法-减法指令 这类指令共计22条,表3-16 参与运算的乘数可以是T寄存器、立即数、存储单元和累加器A或B的高16位。 乘法运算结束后,再将乘积与目的操作数进行加法或减法运算 操 作 码:MAC、MACR、MACA、MACAR、MACD、MACP、MACSU、MAS、MASR,实例 实现乘-加运算 y = ax + b LD b, B ;B=b LD x, T ;T=x MAC a, B ;乘法累加,B=ax+b STL B, y ;计算结果的低字BL存入y中 STH B, y+1 ;计算结果的高字BH存入y+1中,2019/4/13,70,2019/4/13,71,双字算术运算指令 指令共计6条,完成双16位数的加减运算,表3-18是对双操作数指令的说明 双操作数指令中有一个操作数Lmem是长数据存储操作数,该指令为双长字(32位)的指令。如DADD指令,它在C16的控制下完成一个32位的加法运算或两个16位的加法运算。 当C160时,指令以双精度(32位)方式执行;即40位的src与Lmem相加; 当C161时,指令以双16位方式执行。即src高16位与Lmem的高16位相加,src低16位与Lmem的低16位相加。,2019/4/13,72,【例28】 DADD *AR3+,A,B,C160时,指令以双精度(32位)方式执行 1534 9456H + 00 5678 8933H= 00 6BAD 1D89H,2019/4/13,73,专用指令 专用指令用来完成一些特殊的操作, 共15条,其中包含了用于FIR滤波器的专用指令FIRS,求多项式的专用指令POLY等,不仅简化了编程,而且大多数指令是在单周期内完成。,表4-36 专用指令,2019/4/13,74,2019/4/13,75,2 逻辑运算指令,逻辑与指令,AND Smem,src Src = src & Smem,逻辑或指令,异或指令,OR Smem,src src = src | Smem,XOR Smem,src Src = src Smem,移位指令,ROL src 累加器带进位位循环左移,测试指令,BIT Xmem, BITC TC = Xmem(15 BITC) 把双数据存储器操作数Xmem指定位复制到状态寄存器ST0的TC位。,2019/4/13,76,3 程序控制操作指令,跳转指令,BACCD src PC = src(150),调用指令,中断指令,返回指令,RETD PC = SP+,2019/4/13,77,表4-42 后缀有D的分支转移指令的说明,表4-43 延迟调用指令的说明,2019/4/13,78,表4-44 中断指令,表4-45 返回指令,2019/4/13,79,程序控制操作指令(续),重复指令,RPT Smem 重复执行单条指令,RC = Smem 计数为单数据存储器操作数,堆栈操作指令,其它程序控制指令,2019/4/13,80,表4-46 重复指令,表4-47 堆栈操作指令,2019/4/13,81,条件操作,C54x有一些指令只有在一个或者多个条件满足后才被执行。下表列出了这些指令与其要用到的条件和相应的操作数符号。,2019/4/13,82,1. 使用多个条件,下表中列出了多个条件,多种条件的组合就构成了指令的多重条件。不是所有条件都能构成多重条件。将各种条件分成2组,可以在第1组和第2组中选择不同类别的条件进行组合,但必须注意以下几点:,在第1组中最多可选择两个条件, 组内A类和B类条件可以用与/或构成多重条件,但不能用组内同类条件构成与/或多重条件。当选择两个条件时,累加器必须是同一个。例如,可以同时选择AEQ和AOV,但不能同时选择AEQ和BOV。,在第2组中最多可选三个条件,可以在A类、B类和C类中各选一个条 件进行与/或构成多重条件,但不能在同类选两个以上条件。例如,可以同时测试TC、C和BIO,但不能同时测试TC、C和NC。,组与组之间可用或构成多重条件,2019/4/13,83,2. 条件执行指令XC 如果条件分支转移出去的地方只有12字的程序段,那么可以用一条单周期条件执行指令来代替分支转移支令。条件执行指令有两种形式: 一个单字指令的执行 XC 1,cond 一个双字指令或者两个单字指令 XC 2,cond 3 条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年素质教育行业幼儿教育内容创新研究报告及未来发展趋势预测
- 听音训练模拟试题及答案
- 项目进度跟进管理电子化工具
- 2025年通信行业通信技术发展与5G商用应用研究报告及未来发展趋势预测
- 喷漆工安全测试题及答案解析
- 企业运营报告总结标准化文档
- 宁波市从业人员模拟考试及答案解析
- 2025年数字化转型对传统零售业的影响及对策研究报告及未来发展趋势预测
- 2025年生物科技行业全球竞争格局分析报告
- 风险管理系统承诺书6篇
- 军队文职新闻试卷及答案
- GB/T 46406-2025科研项目数据管理指南
- 钢围檩及钢支撑施工质量验收标准
- 2025太原迎泽区社区劳动保障协理员和城镇最低生活保障协理员招聘考试参考题库及答案解析
- 钻探施工安全教育培训课件
- 2025年少先队基础知识竞赛题库及答案
- 2025心肺复苏指南护理课件
- 2025年西藏初中班招生统一考试语文试卷试题(含答案详解)
- 医药代表工作分享汇报
- 教学设备投标施工方案
- 南京223火灾事故调查报告
评论
0/150
提交评论