首页 TMS320的汇编程序指令系统2009-3

TMS320的汇编程序指令系统2009-3

举报
开通vip

TMS320的汇编程序指令系统2009-3null汇编程序语法汇编程序语法TMS320的汇编程序包含汇编指令(伪指令,assembler directives)、汇编语言指令(assembly language instructions)、宏指令(macro directives)和注释(comments)。 C54的指令既可以是助记符方式,也可以是代数式方式C54的指令既可以是助记符方式,也可以是代数式方式助记符方式汇编程序语法助记符方式汇编程序语法 [label][:] mnemonic [operand list] [;comment] ...

TMS320的汇编程序指令系统2009-3
null汇编程序语法汇编程序语法TMS320的汇编程序包含汇编指令(伪指令,assembler directives)、汇编语言指令(assembly language instructions)、宏指令(macro directives)和注释(comments)。 C54的指令既可以是助记符方式,也可以是代数式方式C54的指令既可以是助记符方式,也可以是代数式方式助记符方式汇编程序语法助记符方式汇编程序语法 [label][:] mnemonic [operand list] [;comment] [标号][:] 助记符 [操作数] [;注释]汇编程序语法汇编程序语法所有的语句必须由语句标号、空格、*号或 ;号开头。语句标号不是必须的,如果用,就必须在第一列。语句中的各部分之间,由一个或多个空格分开。注释不是必须的。注释可以从第一列的 * 号或 ;号开头;如果不是从第一列开始,就必须用 ;号开头。语句标号语句标号 由字母、数字、_、$组成,最多不超过32个字符,对大小写敏感,第一个字符不能是数字。后跟 :,但分号不是语句标号的组成部分。助记符助记符助记符不允许从第一列开始,否则被认为是语句标号。助记符可以是机器指令(如ABS,MPYU,SPH等)、伪指令(如.data, .list, .set等)、宏指令(如.macro, .var, .mexit等)和宏调用。 操作数操作数操作数可以是常数、符号或 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式。当操作数多于一个时,用逗号分开。常数常数二进制常数(如01B或01b) 八进制常数(如10Q或10q) 十进制常数(如23) 十六进制常数(如78H或78h) 字符常数(如‘A’或‘b’) 字符串(如“sample program”) 汇编时使用的常数表达式表达式表达式是一个常数、符号、或用算术运算符连接起来的常数或符号。表达式的值的范围为-32768到32767 null TMS320C54x的助记符指令集有近两百条指令,按功能分为如下几类: 装入和存储指令 逻辑运算指令 程序控制指令 算术运算指令一、装入和存储指令一、装入和存储指令装入和存储指令包括: 一般的装入和存储指令 条件存储指令 并行装入和存储指令 并行装入和乘法指令 并行存储和加减乘指令 混合装入和存储指令1、一般的装入指令1、一般的装入指令null装入指令应用举例装入指令应用举例Eg1: LD *AR3+,16,A Before instructionAfter instructionASXM AR31FF FEDC 000010300030100 0000 0000FEDCFEDCData memory 0300hEg2: LD #23,DPBefore instructionAfter instructionDPASM 000170F1FFEg3: LD #15,ASM2、存贮指令2、存贮指令存储指令应用举例存储指令应用举例Eg1: ST T,*AR7-Before instructionAfter instructionTAR7 032142100320421012004210Data memory 0321hEg2: STH A,DAT10Before instructionAfter instructionDP00FF 8765 43218765FF 8765 4321004004ADAT10null4、条件存储指令null数据块传送程序 可以用于数据传送的指令有10条,分别可以实现数据存储器之间、数据存储器和MMR之间、程序存储器和数据存储器之间、程序存储器和数据存储器之间的数据块传送等。 这些指令传送速度比加载和存储指令快,传送数据不需要通过累加器,可以寻址程序存储器,与RPT指令相结合可以实现数据块传送。 7、混合装入和存储指令7、混合装入和存储指令null 1. 数据传送指令 用于数据传送指令可分为四类: (1) 数据存储器之间的数据传送 MVDK Smem,dmad MVKD dmad,Smem MVDD Xmem,Ymem2字 2周期 2字 2周期 1字 1周期null 1. 数据传送指令 (2) 数据存储器与MMR之间的数据传送 MVDM dmad,MMR MVMD MMR,dmad MVMM MMRx,MMRy 2字 2周期 2字 2周期 1字 2周期(3) 程序存储器和数据存储器之间的数据传送 MVPD pmad,Smem MVDP Smem,pmad READA Smem WRITA Smem 2字 3周期 2字 4周期 1字 5周期 1字 5周期null 1. 数据传送指令 (4) 从PA口读/写数据 PORTR PA,Smem PORTW Smem,PA 2字 2周期 2字 2周期数据传送指令的特点 ① 传送速度比加载和存储指令要快; ② 数据传送不通过累加器; ③ 可寻址程序存储器; ④ 与RPT结合,可实现数据块传送。 null (1) 程序存储器至数据存储器的数据传送 重复执行MVPD指令,可以实现程序存储器至数据存储器的数据传送,在系统初始化过程中十分有用。【例1】数组x[8]={0,1,2,3,4,5,6,7}初始化。 . bss x,8 . data TBL: . word 0,1,2,3,4,5,6,7 . text START:STM #x,AR5 RPT #7 MVPD TBL,*AR5+ ……null 2). 数据存储器之间的数据传送 在数字信号处理时,经常需要将数据存储器中的一批数据传送到数据存储器的另一个地址空间。null例2:编写一段程序将数据存储器中的数组X[20]复制到 数组Y[20]中。 .bss x,20 .bss y,20 … STM #x,AR2 STM #y,AR3 RPT #19 MVDD *AR2+,*AR3+ null二、算术运算指令 算术运算指令是实现数学计算的重要指令集合。 ’C54x的算术指令具有运算功能强、指令丰富等特点。 包括:加法指令(ADD) 减法指令(SUB) 乘法指令(MPY) 乘法-累加/减指令(MAC/MAS) 双字运算指令(DADD) 特殊用途指令null(1)加法指令 ’C54x的加法指令共有13条,可完成两个操作数的加法运算、移位后的加法运算、带进位的加法运算和不带符号位扩展的加法运算。操 作 码: ADD、ADDC、ADDM、ADDS 指令格式:操作码 源操作数 [,移位数] ,目的操作数 源操作数: Smem、Xmem、Ymem、#lk、src 移 位 数: TS、16、SHIFT、SHFT、ASM 目的操作数:src、dst、Smem TMS320C54x的数TMS320C54x的数一个16位的二进制数既可以表示一个整数,也可以表示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1位表示21,次高位(D14)表示214。如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的负数-1(负数用二进制的补码方式显示)。TMS320C54x程序简例TMS320C54x程序简例当需要表示小数时,小数点的位置始终在最高位后,最高位(D15)表示符号位。次高位(D14)表示2-1,然后是2-2,最低位(D0)表示2-15。 04000H表示小数0.5,01000H是小数2-3 = 0.125,0001H则表示16位定点DSP能表示的最小的小数(有符号) 2-15 = 0.000030517578125。TMS320C54x程序简例TMS320C54x程序简例在DSP中,一个16进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。在后面的例子中,除非有特别说明,我们指的都是有符号数。在C54X中,将一个小数用16位定点格式来表示的方法是用215乘以该小数,然后取整。1、加法指令1、加法指令定点加法 temp3=temp1+temp2 LD temp1,A ;将变量temp1装入寄存器A ADD temp2,A ;将变量temp2与寄存器A相加 ;结果放入A中 STL A ,temp3 ;将结果(低16位)存入变量 ;temp3中。 注意,这里完成计算temp3=temp1+temp2,我们没有特意考虑temp1和temp2是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。定点加法 temp3=temp1+temp2null(2)减法指令 ’C54x的减法指令共有13条,可完成两个操作数的减法运算、移位后的减法运算、带借位的减法运算、条件减法运算和不带符号位扩展的减法运算。SUB SUBB SUBC SUBS 指令格式:操作码 源操作数 [,移位数] ,目的操作数 Smem Xmem Ymem #lk src TS 16 SHIFT SHFT ASM src dst 2、减法指令2、减法指令实现16位定点减法实现16位定点减法‘C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。SUB指令与ADD指令一样,有许多的寻址方式。定点减法定点减法 STM #temp1,AR3 ;变量temp1的地址装入ar3寄存器 STM #temp2, AR2 ;变量temp2的地址装入ar2寄存器 SUB *AR2, *AR3,B ;变量temp2和temp1都左移16位,然后相减,结果放入累加器B中(高16位) STH B,temp3 ;相减的结果(累加器B的高16位)存入变量temp3。null LD @x,A ; 直接寻址 ADD @y,A SUB @w,A ; A=A-@w STL A, @z 例3:编写完成 Z=X+Y-W的功能 特殊的减法指令特殊的减法指令其中SUBS用于无符号数的减法运算 SUBB用于带进位的减法运算(如32位扩展精度的减法) 而SUBC为移位减,DSP中的除法就是用该指令来实现的。SUBB指令应用举例SUBB指令应用举例 SUBB Smem,src Execution: (src)-(Smem)-(logical inversion of c)(src) Eg1: SUBB DAT5,ABefore instructionAfter instructionAC DP Data memory 0405hnullEg2: SUBB *AR1+,BBefore instructionAfter instructionBC AR1 Data memory 0405h思考 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 : 思考题: null谷物产量传感器冲击板参考板传感器A X=x1+q谷粒收割机传感器B X=q 编程实现求解谷物产量相关信号x1利用SUBC实现除法利用SUBC实现除法在‘C54X中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。另一种方法是使用SUBC指令,重复16次减法完成除法运算。null(3)乘法指令 ’C54x的指令系统提供了10条乘法运算指令,其运算结果都是32位的,存放在累加器A和B中。而参与运算的乘数可以是T寄存器、立即数、存储单元和累加器A的高16位。格式:操作码 源操作数1 [,源操作数2] ,目的操作数 操 作 码: MPY、MPYR、MPYA、MPYU、SQUR 源操作数1:Smem、Xmem、#lk 源操作数2:Ymem、#lk 目的操作数:dst 3、乘法指令3、乘法指令定点整数乘法定点整数乘法例temp1=1234H(十进制的4660)temp2=9876H(十进制的-26506)乘法的结果在累加器A中为F8A343F8H(十进制的-123517960)定点整数乘法定点整数乘法RSBX FRCT ;清FRCT标志,准备整数乘 LD temp1,T ;变量temp1装入T寄存器 MPY temp2, A ;temp2*temp1,结果放入 累加器A(32位) STH A,temp3 ;结果的高16位存入temp3 STL A,temp4 ;结果的低16位存入temp4null例:编写实现方程y=mx+b的程序 单操作数法: LD @m,T MPY @x,A ADD @b,A STL A, @y 双操作数法: MPY *AR2,*AR3,A ADD @b,A STL A, @y 特殊的乘法指令特殊的乘法指令MPYR: 将乘积四舍五入 MPYA:累加器A的高阶位做乘数 MPYU:专用于无符号数乘法运算null可以使用MPYR完成四舍五入。 比较如下结果: MPYR temp1,B; T * temp1  b 注:无论是小数乘法还是整数乘法,MPYR指令只保留高16位,而将低16位四舍五入,全部清零。Before instructionAfter instructionBT FRCT Data memory 0200hEg: MPYR DAT0,B注:(1234)h×(5678)h=(6260060)hnull(4)乘法-累加和乘法-减法指令 这类指令共计22条,除了完成乘法运算外,还具有加法或减法运算。因此,在一些复杂的算法中,可以大大提高运算速度。 参与运算的乘数可以是T寄存器、立即数、存储单元和累加器A或B的高16位。 乘法运算结束后,再将乘积与目的操作数进行加法或减法运算。null(4)乘法-累加和乘法-减法指令 格式:操作码 源操作数1 [,源操作数2] ,目的操作数 操 作 码:MAC、MACR、MACA、MACAR、 MACD、MACP、MACSU、MAS、MASR源操作数1:Smem、Xmem、#lk、T 源操作数2:Ymem、#lk、pmad 目的操作数:src、dst、B 4、乘加和乘减指令4、乘加和乘减指令nullnullBefore instructionAfter instructionAT FRCT AR5 Data memory 0100h00 0000 1000040000100Eg1: MAC *AR5+,A 12341234注:(0400)h×(1234)h+(1000)h=(48E000)hEg2: MACR *AR5+,A Before instructionAfter instructionAT FRCT AR5 Data memory 0100h0400001001234123400 0000 1000nullBefore instructionAfter instructionAT FRCT AR3 Data memory 0100h00 0077 0000000800100Eg3: MACD *AR3-, COEFFS, A 00550055注:(0055)h×(1234)h+(770000)h=(7D0B44)hProgram memory COEFFS1234123400660055Data memory 0101hnull例:编写实现方程y=mx+b的程序 单操作数法: LD @m,T MPY @x,A ADD @b,A STL A, @y 双操作数法: MPY *AR2,*AR3,A ADD @b,A STL A, @y 双操作数法指令的特点: 1.需要用间接方式寻址操作,并且只能用AR2~AR5 2.采用双操作数占用程序空间小。 3.速度快进一步优化 MAC *AR2,*AR3,A STL A, @y null【例】 计算y = xl  al + x2  a2 程序: LD @x1, T MPY @a1, B LD @x2, T MAC @a2, B STL B, @y STH B, @y+1;T=x1 ;B=x1×a1 ;T=x2 ;乘法累加,B=x1a1+x2a2 ;计算结果的低字BL存入y中 ;计算结果的高字BH存入y+1中nullnull三、 程序控制指令 ’C54x的程序控制指令共有31条,可分为6类: 包括:分支转移指令 子程序调用指令 中断指令 返回指令 堆栈操作指令 其他程序控制指令null 无条件分支转移:无条件执行分支转移; 条件分支转移:要在满足用户一个或多个条件时才执行分支转移; 远程分支转移:允许分支转移到扩展存储器。 1. 分支转移程序 【例5.3.1】 分支转移举例。 STM #88H,AR0 LD #1000H,A zhong: SUB AR0,A BC zhong,AGT,AOV ;将操作数#88H装入AR0 ;将操作数#1000H装入ACC ;将A中的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 减去AR0中的 ;内容结果装入A ;若累加器A>0且溢出, ;则转至zhong,否则往下执行 1、分支指令1、分支指令分支指令应用举例分支指令应用举例Eg1: B 2000hBefore instructionAfter instructionPC20001F45Eg2: BD 1000H ANDM 4444H,*AR1Before instructionAfter instructionPC10001F45注: 如果分支指令被延迟(有后缀D),则在分支跳转之前,先将紧跟的两条一个字的指令或一条两个字的指令先取出执行。如上例,先将操作数与4444H与之后,程序再从1000H的地址开始执行。Word:2null2、调用与中断指令条件调用指令举例条件调用指令举例Eg1: CC 2222h,AGT Before instructionAfter instructionAPC SP002500 0000 300022221111111000 0000 300045670027Data memory 1110hEg2: CCD 1000h,BOV ANDM 4444h,*AR1+ Before instructionAfter instructionPCOVB SP11000111111110002545670029Data memory 1110h3、返回指令3、返回指令null2 堆栈的使用方法 当程序调用中断服务程序或子程序时,需要将程序计数器PC的值和一些重要的寄存器值进行压栈保护,以便程序返回时能从间断处继续执行。 ’C54x提供一个用16位堆栈指针SP寻址的软件堆栈。 当向堆栈中压入数据时,堆栈是从高地址向低地址方向填入,堆栈指针SP先减1,然后将数据压入堆栈。 当从堆栈中弹出数据时。数据先从堆栈中弹出,然后堆栈指针SP加1。 null5.堆栈操作指令 堆栈操作指令共有5条,可对系统堆栈进行管理,实现数据的进栈和出栈。 指令格式: FRAME K 指令功能: (SP)+K→SP ① FRAME 功能说明: 将短立即数偏移K加到SP中。操 作 数: K——9位短立即数,取值:-128~127 ① FRAME 操 作 数: K——9位短立即数,取值:-128~127 指令格式: FRAME K ① FRAME 操 作 数: K——9位短立即数,取值:-128~127 指令功能: (SP)+K→SP 指令格式: FRAME K ① FRAME 操 作 数: K——9位短立即数,取值:-128~127 2.堆栈操作指令 堆栈操作指令共有5条,可对系统堆栈进行管理,实现数据的进栈和出栈。 指令格式: FRAME K 指令功能: (SP)+K→SP ① FRAME 功能说明: 将短立即数偏移K加到SP中。操 作 数: K——9位短立即数,取值:-128~127 操 作 数: K——9位短立即数,取值:-128~127 指令格式: FRAME K 操 作 数: K——9位短立即数,取值:-128~127 指令功能: (SP)+K→SP 指令格式: FRAME K null功能说明: 将短立即数偏移K加到SP中。指令功能: (SP)+K→SP 指令格式: FRAME K ① FRAME 操 作 数: K——9位短立即数,取值:-128~127 null 堆栈的设置 size .set 120 stack .usect “STACK”,size STM # stack + size,SP 在数据RAM空间开辟一个堆栈区。 在RAM中定义一个STACK 的保留空间,共120个单元 设置堆栈指针,# stack + size→SP。 保留区的高地址赋给SP, 作为堆栈的栈底 若程序中要使用堆栈,必须先进行设置,如: 设置好堆栈后,就可以使用堆栈了,如: CALL pmad ;(SP)-1→SP,(PC)+2→TOS,pmad→PC RET ;(TOS)→PC,(SP)+1→SP null3 循环操作程序 在程序设计时,经常需要重复执行某一段程序。利用BANZ(当辅助寄存器不为0时转移)指令可实现循环计数和操作。 循环操作指令: BANZ 转移地址,辅助寄存器 指令功能:当辅助寄存器不为0时,则转至转移地址,否则顺序执行。 null【例5.3.4】 .bss x,10 ;给x保留10个空间 .bss y,1 ;给y保留1个空间 STM #x,AR1 ;设置数据段的首地址 STM #9,AR2 ;设置循环计数值 LD #0,A ;累加器清0 loop: ADD *AR1+,A ;累加运算,并修改地址 BANZ loop,*AR2- ;若计数值不为0,则循环,并计数值减1 若计数值为0,则结束循环 STL A, @y ;累加和存入y中 用AR2作为循环计数器,由BANZ实现程序的循环控制。注意: BANZ loop, *AR2- ;先判断,再修正AR2=AR2-1null4 重复操作指令 重复操作指令可以使紧随其后的一条指令或程序块重复执行,分为单指令重复和程序块重复。 单指令重复操作是指通过RPT或RPTZ指令使其下一条指令被重复执行,重复执行的次数由指令操作数给出,其值等于操作数加1,最大重复次数为65 536。4、重复指令和堆栈操作指令4、重复指令和堆栈操作指令null ’C54x的重复操作是使CPU重复执行一条指令或一段指令。可以分为单指令重复和块程序重复。 实现重复操作的指令: RPT —— 重复下条指令; RPTZ—— 累加器清0,并重复下条指令; RPTB—— 块重复指令。 使用RPT、RPTZ能重复下一条指令;而RPTB用于重复代码块若干次。利用重复指令可实现比BANZ指令更快的循环程序。重复指令应用举例重复指令应用举例Eg1: RPT DAT127 ; DAT127 .EQU 0FFFHBefore instructionAfter instructionRCDP 0FFFH31000C31000C000C0Eg2: RPT #2 ; repeat the next instructions 3 timesBefore instructionAfter instructionRC20Eg3: RPT #1111H ;repeat the next instructions 4370 timesBefore instructionAfter instructionRC11110null【例5.4.3】计算 y = 程序: table: .word 1,2,3,4 .word 8,6,4,2 .text start: STM #0,SWWSR STM #STACK+10h,SP STM #a,AR1 RPT #7 MVPD table,*AR1+ CALL SUM end: B end ; 变量初始化 ; 插入0个等待状态 ; 设置堆栈指针 ; AR1指向a ; 移动8个数据 ; 从程序存储器到数据存储器 ; 调用SUM子程序 null【例5.4.3】计算 y = 程序: SUM: STM #a, AR3 STM #x, AR4 RPTZ A, #3 MAC *AR3+,*AR4+,A STL A,@ y RET .end ;子程序执行null 程序块重复操作可以使紧随RPTB指令之后的程序块重复执行。 块起始地址(RSA):RPTB指令的下一行。 块结束地址(REA):由RPTB指令的操作数给出。 块重复执行次数:由块重复计数器BRC的内容 来确定。 对于整个程序块需要重复操作时,可采用程序块重复操作。 块程序重复操作 null块重复操作的特点: ① 程序块的起始地址RSA是RPTB指令的下一行; ② 块结束地址REA由RPTB指令的操作数规定; ③ 对程序块进行重复操作时,不论程序块多长,重复次数多大,所用的机器周期为0; ④ 与单指令重复操作不同,块重复操作可以响应中断。 null块程序重复操作 块程序重复指令的特点是对任意长程序段的循环开销为0。循环由ST1状态寄存器的块重复标志位(BRAF)和紧跟在ST1状态寄存器后面的存储器映像寄存器控制。 循环过程: ① 将块重复标志位BRAF置1,激活块程序重复循环; ② 将一个取值在0~65535范围里的循环次数N加载到BRC; ③ 块重复指令把块重复的起始地址放在块重复开始地址寄存器RSA中; ④ 块重复指令把块重复的末地址放在块重复结束地址寄存器REA中。 null【例5.5.2】对数组x[8]中的每一元素加1。 .bss x, 8 begin: LD #1,16,B STM #7,BRC STM #x,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+ next: LD #0,B …;设置数组空间 ;立即数1送入BH ;设置重复次数,BRC=7,循环8次 ;数组首地址x送入AR4 ;设置循环结束地址 ;数组数据左移16位与BH相加 ;存入数组结果,并修改地址 ;B清0注 意 ① 块结束地址REA通常取程序块最后一条指令的下一条指令地址-1; ② 重复次数为7次 ③ RPTB指令可以响应中断。 null例:编写完成 y=aixi(i=1~20)采用单操作数方法: LD #0,B STM #a,AR2 STM #x,AR3 STM #19,BRC RPTB Done-1 LD *AR2+, T MPY *AR3+, A …… ADD A, B Done: STH B, @y STL B, @y+1 采用双操作数的方法: LD #0,B STM #a,AR2 STM #x,AR3 STM #19,BRC RPTB Done-1 MPY *AR2+,*AR3+,A …… ADD A, B Done: STH B, @y STL B, @y+1null进一步优化的程序: STM #x,AR2 STM #a,AR3 RPTZ A,#19 MAC *AR2+,*AR3+,A STH A,@y STL A, @y+15、混合程序控制指令5、混合程序控制指令nullnullnull四、特殊指令四、特殊指令五、逻辑运算指令五、逻辑运算指令逻辑指令包括与、或、异或、移位和测试指令 (1)、与指令(AND)nullEg1: AND *AR3+,A Before instructionAfter instructionAAR3 Data memory 0100h010000 0000 100001011500150000 00FF 1200Eg2: AND A, 3, B Before instructionAfter instructionAB 00 0000 180000 0000 120000 0000 100000 0000 1200(2)、或、异或指令(2)、或、异或指令nullEg1: OR *AR3+,A Before instructionAfter instructionAAR3 Data memory 0100h010000 00FF 170001011500150000 00FF 1200Eg2: OR A, +3, B Before instructionAfter instructionAB 00 0000 180000 0000 120000 0000 980000 0000 1200(3)、移位和测试指令(3)、移位和测试指令nullEg1: ROLTC A Before instructionAfter instructionAC TCX00 8000 AAAB11181 C000 5555Eg2: ROL A Before instructionAfter instructionAC 000 6000 246815F B000 1234(c )src(0) Src(30-0)src(31-1) Src(31)c, 0src(39-32)(Tc )src(0) Src(30-0)src(31-1) Src(31)c, 0src(39-32)nullEg3: SFTA A,-5,B Before instructionAfter instructionAB C00 4321 1234FF 8765 0055FF FC3B 2802X1FF 8765 0055Eg4: SFTA B,+5Before instructionAfter instructionBC 015 4002 4680080 AA00 123411SXM00SXM算术移位,移动时包括保护位null逻辑移位时,移位不包括保护位Eg5: SFTL A,-5,B Before instructionAfter instructionAB CFF 8000 0000FF 8765 005500 043B 280201FF 8765 0055Eg6: SFTL B,+5Before instructionAfter instructionBC 000 4002 4680180 AA00 1234null六、 并行装入和存储指令举例:Eg1: ST B,*AR2-||LD *AR4+,ABefore instructionAfter instructionAB FF 8421 1234FF 8001 0000FF 8421 123400 0000 00IC11Data memory 01FFhSXM1C1C01FF01FE02000201XXXXF84280018001ASMAR2AR4Data memory 0200h并行存储和加、减、乘法指令并行存储和加、减、乘法指令并行装入和乘法指令并行装入和乘法指令 本章小结 本章重点介绍了TMS320C54x的软件体系,并对寻址方式和指令集进行了介绍,对于各指令更详细的了解请同学们参阅有关书籍和材料。 本章小结 本章重点介绍了TMS320C54x的软件体系,并对寻址方式和指令集进行了介绍,对于各指令更详细的了解请同学们参阅有关书籍和材料。
本文档为【TMS320的汇编程序指令系统2009-3】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:ppt
大小:8MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-04-30
浏览量:12