文档库 最新最全的文档下载
当前位置:文档库 › DSP汇编指令总结

DSP汇编指令总结

DSP汇编指令总结
DSP汇编指令总结

DSP汇编指令总结

一、寻址方式:

1、立即寻址:

短立即寻址(单指令字)

长立即数寻址(双指令字)

第一指令字

第二指令字

16位常数=16384=4000h

2、直接寻址

ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。N规定是否改变ARP值,(N=0,不变)

4.3.1、算术逻辑指令(28条)

4.3.1.1、加法指令(4条);

4.3.1.2、减法指令(5条);

4.3.1.3、乘法指令(2条);

4.3.1.4、乘加与乘减指令(6条);

4.3.1.5、其它算数指令(3条);

4.3.1.6、移位和循环移位指令(4条);

4.3.1.7、逻辑运算指令(4条);

4.3.2、寄存器操作指令(35条)

4.3.2.1、累加器操作指令(6条)

4.3.2.2、临时寄存器指令(5条)

4.3.2.3、乘积寄存器指令(6条)

4.3.2.4、辅助寄存器指令(5条)

4.3.2.5、状态寄存器指令(9条)

4.3.2.6、堆栈操作指令(4条)

4.3.3、存储器与I/O操作指令(8条)4.3.3.1、数据移动指令(4条)

4.3.3.2、程序存储器读写指令(2条)

4.3.3.3、I/O操作指令(2条)

4.3.4、程序控制指令(15条)

4.3.4.1、程序分支或调用指令(7条)

4.3.4.2、中断指令(3条)

4.3.4.3、返回指令(2条)

4.3.4.4、其它控制指令(3条)

4.3.1、算术逻辑指令(28条)

4.3.1.1、加法指令(4条);

▲ADD

▲ADDC(带进位加法指令)

▲ADDS(抑制符号扩展加法指令)

▲ADDT(移位次数由TREG指定的加法指令)

4.3.1.2、减法指令(5条);

★SUB(带移位的减法指令)

★SUBB(带借位的减法指令)

★SUBC(条件减法指令)

★SUBS(减法指令)

★SUBT(带移位的减法指令,TREG决定移位次数)4.3.1.3、乘法指令(2条);

★MPY(带符号乘法指令)

★MPYU(无符号乘法指令)

4.3.1.4、乘加与乘减指令(6条);

★MAC(累加前次积并乘)(字数2,周期3)

★MAC(累加前次积并乘)

★MPYA(累加-乘指令)

★MPYS(减-乘指令)

★SQRA(累加平方值指令)

★SQRS(累减并平方指令)

4.3.1.5、其它算数指令(3条);

★ABS(累加器取绝对值指令)

★NEG(累加器取补码指令)

★NORM(累加器规格化指令)

返回

4.3.1.6、移位和循环移位指令(4条);

▲ SFL(累加器内容左移指令)

▲ SFR(累加器内容右移指令)

▲ROL(累加器内容循环左移指令)

▲ROR(累加器内容循环右移指令)

返回

4.3.1.7、逻辑运算指令(4条);

▲ AND(逻辑与指令)

▲ OR(逻辑或指令)

▲ XOR(逻辑异或指令)

▲ CMPL(累加器取反指令)

返回

4.3.2、寄存器操作指令(35条)

4.3.2.1、累加器操作指令(6条)

▲ LACC(装载累加器指令)

▲ LACT(装载累加器)*按TREG低4位指定的次数移位▲ LACL(装载累加器低16位指令)

▲ ZALR(装载累加器指令)

▲ SACL(移位并存储累加器低半部)

▲ SACH(移位并存储累加器高半部)

返回

4.3.2.2、临时寄存器指令(5条)

▲ LT(装载TREG指令)

▲ LTA(装载TREG并累加上次乘积指令)

▲ LTS (装载TREG并减去上次乘积指令)

▲ LTD(装载TREG并累加上次乘积及数据移动指令)▲LTP(装载TREG和累加器指令)

返回

4.3.2.3、乘积寄存器指令(6条)

▲ PAC (乘积寄存器内容载入累加器)

▲ APAC (PREG与累加器相加)

▲ SPAC(累加器和乘积寄存器相减)

▲ LPH(装载PREG高16位指令)

▲ SPL(存储PREG低16位指令)

▲ SPH(存储PREG高16位指令)

返回

4.3.2.4、辅助寄存器指令(5条)

★LAR(装载当前辅助寄存器AR)

★SAR(存储辅助寄存器指令)

★MAR(修改当前辅助寄存器)

★SBRK(从当前辅助寄存器减去短立即数)

返回

4.3.2.5、状态寄存器指令(9条)

★LST(装载状态寄存器)

★SST(存储状态寄存器)

★SETC(控制位置“1”指令)

★SETC(控制位置“1”指令)

★LDP(装载数据指针DP指令)

★BIT(位测试指令)

★BITT(测试由TREG指定bit code指令)

★CMPR(比较当前辅助寄存器AR和AR0)

返回

4.3.2.6、堆栈操作指令(4条)

★PUSH(累加器低16位进栈指令)

★POP(栈顶内容弹出至累加器低16位指令)

★POP(栈顶内容弹出至累加器低16位指令)

★POPD(弹栈至数据存储器指令)

返回

4.3.3、存储器与I/O操作指令(8条)

4.3.3.1、数据移动指令(4条)

▲DMOV(数据存储器内部数据移动指令)

▲SPLK(存储长立即数至数据存储器指令)

▲BLDD(数据存储器内部的数据块移动)

▲ BLPD(从程序存储器到数据存储器的数据块传送)4.3.3.2、程序存储器读写指令(2条)

★TBLR(读程序存储器数据到数据存储器)

★TBLW(写程序存储器)

4.3.3.3、I/O操作指令(2条)

★IN(数据输入指令)

★OUT(数据输出指令)

4.3.4、程序控制指令(15条)

4.3.4.1、程序分支或调用指令(7条)

★B(无条件转移指令)

★BANZ(辅助寄存器内容不等于零转移)

★CALL(无条件子程序调用指令)

★BACC(按累加器内容转移指令)

★CALA(由累加器指定地址的子程序调用指令)

★CC(条件调用指令)

4.3.4.2、中断指令(3条)

★INTR(软中断指令)

★TRAP(软件陷阱中断)

★NMI(非屏蔽中断)

4.3.4.3、返回指令(2条)

★RET(无条件从子程序或中断返回)

★RETC(条件返回指令)

4.3.4.4、其它控制指令(3条)

★RPT(重复执行下条指令)

★NOP(空操作)

★IDEL(暂停)

返回

DSP汇编指令学习笔记

Knowledge 问题 谁在DSP的汇编语言中加入了NOP指令? NOP指令加入的条件是什么? About DSP 1.DSP是实时数字信号处理的核心和标志。 2.DSP分为专用和通用两种类型。专用DSP一般采用定点数据结构(一般不支持小数), 数据结构简单,处理速度快;通用DSP灵活性好,但是处理速度有所降低。 3.DSP采用取指、译码、执行三个阶段的流水线(Pipeline)技术,缩短了执行时间,提高了 运行速率。DSP具有8个Functional unit,如果并行处理的话,以600MHz的时钟计算,如果执行的指令是single cycle指令,则可以4800MIPS(指令每秒)。 4.DSP的8个functional Unit,具有独特的功能,对滤波、矩阵运算、FFT(傅里叶变换) 具有 哈弗结构 把指令空间与数据空间隔离的存储方式。 这样实现是为了实现指令的连续读取,而实现pipeline流水线结构。 传统哈弗结构:两个独立的存储空间,还使用独立总线。让取指与执行存储独立,加快执行速度。 改进型哈弗结构:指令与数据的存储空间还是独立的。但是使用公共的总线(地址总线与数据总线)。这样实现的原因是因为出现了CACHE,数据的存储动作大部分被内部的CACHE 总线承接了,所以总线冲突的情况会大大减少。同时让总线的结构与控制变得简单,CACHE 存储的速度也明显快于外设存储器。 冯诺依曼结构:是指令空间与数据空间共享的存放方式。它不能实现pipeline的执行过程。 Pipeline(流水线)技术 是把指令的取指-译码和指令的执行独立开来的技术。虽然每条指令的过程还是要经过取指-译码-执行三个阶段最少3个CPU Cycle。但是多个指令同时并行先后进行,保证总体的指

DSP汇编指令总结

DSP汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) 长立即数寻址(双指令字) 第一指令字 第二指令字 16位常数=16384=4000h 2、直接寻址 ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。N规定是否改变ARP值,(N=0,不变)

4.3.1、算术逻辑指令(28条) 4.3.1.1、加法指令(4条); 4.3.1.2、减法指令(5条); 4.3.1.3、乘法指令(2条); 4.3.1.4、乘加与乘减指令(6条); 4.3.1.5、其它算数指令(3条); 4.3.1.6、移位和循环移位指令(4条); 4.3.1.7、逻辑运算指令(4条); 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条) 4.3.2.2、临时寄存器指令(5条) 4.3.2.3、乘积寄存器指令(6条) 4.3.2.4、辅助寄存器指令(5条) 4.3.2.5、状态寄存器指令(9条) 4.3.2.6、堆栈操作指令(4条) 4.3.3、存储器与I/O操作指令(8条)4.3.3.1、数据移动指令(4条) 4.3.3.2、程序存储器读写指令(2条) 4.3.3.3、I/O操作指令(2条) 4.3.4、程序控制指令(15条) 4.3.4.1、程序分支或调用指令(7条) 4.3.4.2、中断指令(3条) 4.3.4.3、返回指令(2条) 4.3.4.4、其它控制指令(3条)

4.3.1、算术逻辑指令(28条) 4.3.1.1、加法指令(4条); ▲ADD ▲ADDC(带进位加法指令) ▲ADDS(抑制符号扩展加法指令) ▲ADDT(移位次数由TREG指定的加法指令) 4.3.1.2、减法指令(5条); ★SUB(带移位的减法指令) ★SUBB(带借位的减法指令) ★SUBC(条件减法指令) ★SUBS(减法指令) ★SUBT(带移位的减法指令,TREG决定移位次数)4.3.1.3、乘法指令(2条); ★MPY(带符号乘法指令) ★MPYU(无符号乘法指令) 4.3.1.4、乘加与乘减指令(6条); ★MAC(累加前次积并乘)(字数2,周期3) ★MAC(累加前次积并乘) ★MPYA(累加-乘指令) ★MPYS(减-乘指令) ★SQRA(累加平方值指令) ★SQRS(累减并平方指令) 4.3.1.5、其它算数指令(3条); ★ABS(累加器取绝对值指令) ★NEG(累加器取补码指令) ★NORM(累加器规格化指令) 返回 4.3.1.6、移位和循环移位指令(4条); ▲ SFL(累加器内容左移指令) ▲ SFR(累加器内容右移指令) ▲ROL(累加器内容循环左移指令) ▲ROR(累加器内容循环右移指令) 返回 4.3.1.7、逻辑运算指令(4条); ▲ AND(逻辑与指令) ▲ OR(逻辑或指令) ▲ XOR(逻辑异或指令) ▲ CMPL(累加器取反指令) 返回 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条)

DSP 汇编指令缩写

ABS Absolute value of Accumulator ADD add to accumulator ADDC add to accumulator with carry ADDT add to accumulator with shift specified by TREG AND and with accumulator CMPL complement accumulator LACC load accumulator with shift LACL load low accumulator and clear high accumulator LACT load accumulator with shift specified by TREG NEG negate accumulator NORM normalize contents of accumulator OR or with accumulator ROL/ROR rotate accumulator left/right SACH/SACL store high/low accumulator with shift SFL/SFR shift accumulator left/right SUB subtract from accumulator SBUC conditional subtract SUBS subtract from accumulator with sign extension suppressed SUBT subtract from accumulator with shift specified by TREG XOR exclusive or with accumulator ZALR zero low accumulator and load high accumulator with rounding ADRK add short limmediate value to AR BANZ branch on AR not zero CMPR compare AR with AR0 LAR load AR MAR modify AR STR store AR SBRK subtract short limmediate APAC add PREG to accumulator LPH load PREG LT load TREG LTA load TREG and ACC previous product LTD load TREG ACC previous product and move date LTS load TREG and subtract previous product MAC multiply and accumulate MACD multiply and accumulate wit data move MPY multiply MPY A multiply and accumulate previous product MPYS multiply and subtract previous product MPYS multiply unsign PAC load accumulator with PREG SPAC subtract PREG from accumulator SPH/SPL store high/low PREG SPM set PREG output shift mode

DSP28335汇编教程

DSP28335汇编教程 当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。根据程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。汇编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种操作。在本章节当中将主要以基于C28x的DSP芯片为例,为读者讲解DSP的寻址方式和汇编指令系统,其中大部分内容也可适用于其他Ti公司的DSP产品。 6.1汇编语言指令集概述 在学习C28x系列DSP的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最重要的操作数符号和寄存器经行详细说明。 在进行汇编讲解之前先来了解一下开发的核心——CPU。在TMS320C2000系列中,CPU 内核为: C20x/C24x/C240x:C2xLP: C27x/C28x:C27x、C28x 这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。 C28x芯片具有3种操作模式: 1.C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统, 因此,一般应使C28x芯片工作于该种模式。 2.C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。在该模式 下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。 3.C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x 代码生成工具编译生成的。 在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。 本节假设条件为芯片工作于C28x模式(OBJMODE=1,AMODE=0)。复位后,通过执行指令C28OBJ或者SETC OBJMODE将ST1中的OBJMODE位置1,芯片即可工作于C28x模式。 6.1.1 DSP中的操作数 汇编语言离不开操作符和操作数,操作符可以认为就是CPU的指令或者编译器上的伪指令,操作数是指令执行过程中的参与者,也可以说操作数就是指令所控制的对象。 如表6-1,表6-2和表6-3对指令中常用到的一些操作数符号进行说明

dsp汇编指令系统介绍(精)

汇编指令集 本节根据指令的功能来分,提供六张表来说明指令集的概况: 累加器、算数和逻辑指令(表2); 辅助寄存器和数据页指针指令(表3); TREG、PREG和乘法指令(表4); 转移指令(表5); 控制指令(表6); I/O和存储器操作(表7)。 在每张表中,指令按字母顺序排列。执行每条指令所需要的周期数在表中给出,所有指令都假设从内部程序存储器和内部数据存储器中执行,指令的周期数适用于单指令执行,不适用于重复方式。编程时,用户必须对每条指令的寻址方式了解清楚,因此这里也在表中给出了每条指令的寻址方式。由于指令的操作码对用户编程没有多大指导意义,在这里就没有列出来。 为了参照起见,我们先定义这六张概述表的符号意义: ACC 累加器。 AR BITX CM 辅助寄存器。 4位数值,用于指定数据存储器数值中的哪一位将被BIT指令所测试。 2位数值,CMPR指令执行CM值所声明的比较: 若CM=00,测试当前AR=AR0否; 若CM=01,测试当前ARAR0否; 若CM=11,测试当前AR≠AR0否。 Shift TP 4位右移量。用于条件执行指令的2位数值,代表如下4种条件:若BIO引脚为低, TP=00;若TC位=1,TP=01;若TC位=0,TP=10;无条件TP=11。 ARX 用于LAR和SAR指令的3位数据值,指定被操作的辅助寄存器。 52 表2 累加器、算数和逻辑指令 ABS 周期 |(ACC)|→ACC 1 (ACC)+(数据存储器地址)×1 2shift→ACC (ACC)+(数据存储器地址)×

216→ACC 1(ACC)+k→ACC 1 shift (ACC)+lk×2→ACC 2 指令功能 (ACC)+(数据存储器地址)+(C)→ ACC 寻址方式 直接/间接 直接/间接短立即数长立即数 指令说明 ACC取绝对值 移位时低位填0,若SXM=1,高位用符号扩展;若SXM=0,高位填0;结果存在ACC中,该指令使C=0。寻址短立即数时,加操作不受SXM的影响,且不能重复执行。 ADD ADDC 1 直接/间接该指令抑制符号扩展 该指令抑制符号扩展;无论SXM为何值,数据均作无符号16位数看待。当SXM=0和 直接/间接 移位次数等于0时,ADDS与ADD指令结果相同。 被寻址的数据寄存器单元的内容左移并加 直接/间接到ACC,移位次数由TREG的低4位确定, SXM位的值控制移位时是否作符号扩展。 使用直接/间接寻址,ACC的低位字与数据直接/间接存储器单元的值作与运算,结果存在ACC 的低字,ACC的高位字清0。使用立即数寻 址,长立即数可以左移,移位时,32位中长立即数未被长立即操作数填充的位均被清零。 长立即数累加器中的内容用其逻辑反取代指定的数据存储器单元的内容或16位常数直接/间接左移并加载到ACC,低位填0,若SXM= 1,高位用符号位扩展;若SXM=0,则填直接/间接0。 长立即数 指定的数据存储器单元的内容或用0扩展

DSP汇编编程及应用举例.

1.DSP汇编语言程序的编写 (1)汇编语言源程序以.asm为其扩展名。 (2)汇编语言源程序的每一行都可以由4个部分组成,句法如下: [标号] [:] 助记符[操作数] [;注释] 其中可用空格或TAB键隔开 标号——供本程序的其他部分或其他程序调用。标号是任选项,标号后面可以加也可以不加冒号“:”。标号必须从第一列写起,标号最多可达到32个字符(A~Z ,a~z ,0~9 ,_ ,以及$),但第1个字符不能以数字开头。引用标号时,标号的大小写必须一致。标号的值就是SPC(段程序计数器)的值。如果不用标号,则第一个字符必须为空格、分号或星号(*)。助记符——助记符指令、汇编指令、宏指令和宏调用。作为助记符指令,一般用大写;汇编命令和宏指令,以英文句号“.”开始,且为小写。汇编命令可以形成常数和变量,当用它控制汇编和连接过程时,可以不占用存储空间。指令和汇编命令都不能写在第1列。 操作数——指令中的操作数或汇编命令中定义的内容。操作数之间必须用逗号“,”分开。有的指令操作无操作数,如NOP、RESET。 注释——注释从分号“;”开始,可以放在指令或汇编命令的后面,也可以放在单独的一行或数行。注释是任选项。如果注释从第1列开始,也可以用“*”表示注释。 (3)常用的汇编命令如表所示。

(4)汇编语言程序中的数据形式如表所示 2.程序 2.1 程序一 编程目的:了解DSP的输入和输出方法 程序功能:求乘积之和y=a1*x1+a2*x2+a3*x3+a4*x4 .title "mpy_add.asm" .mmregs ;将存储映像寄存器导入列表STACK .usect "STACK",10h ;给堆栈段分配空间 .bss a,4 ;将9个字空间分配给各个变量 .bss x,4 .bss y,1 PA0 .set 0 ;将端口PA0全部置0 .def start ;定义标号start .data ;定义数据代码段 table: .word 4,4,4,4 .word 4,4,4,4 .text ;定义文本代码段 start: STM #0,SWWSR ;将等待寄存器设为0,表示不等待

编写一个以c语言或汇编为基础的DSP程序(千一)

广州大学学生实验报告 开课学院及实验室:物理与电子工程学院 2015年3月22日 班级光信121 姓名学号指导老师 实验课程名称数字信号处理实验Ⅰ成绩 实验项目名称编写一个以c语言或汇编为基础的DSP程序 一、实验目的 二、使用仪器、材料 三、实验原理 四、实验步骤 五、实验过程原始记录(数据、图案、计算等) 六、实验结果及分析 一. 实验目的 1.学习用汇编语言编制程序;了解汇编语言程序与C 语言程序的区别和在设置上的不同。 2.了解TMS320C55x 汇编语言程序结果和一些简单的汇编语句用法。 3.学习在CCS 环境中调试汇编代码 二. 实验设备 PC 兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.2 软件。 三. 实验原理 1.汇编语言程序: 汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C 语言编制的程序也稍有不同。其区别为: ⑴汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C 语 言程序在执行时,先要调用 C 标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行。 ⑵由于CCS 的代码链接器默认支持C 语言,在编制汇编语言程序时,需要设置链接参数, 选择非自动初始化,注明汇编程序的入口地址。 2.程序设计要求: 程序框图: 四.实验步骤

1.实验准备: 设置软件仿真模式,参看:第三部分、四、1。 2.建立新的工程文件:(1)启动Code Composer Studio 2.21。 ⑵进行以下设置:建立TASM.pjt。 3.设置工程文件: 4.编辑输入源程序: ⑴汇编语言程序: -先新建源程序窗口: 输入源程序: .mmregs sect “.text” .model call=c55_std .align 4

DSPC2000汇编指令汇编

第六章 DSP的寻址方式和汇编指令 当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。根据程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。汇编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种操作。在本章节当中将主要以基于C28x的DSP芯片为例,为读者讲解DSP的寻址方式和汇编指令系统,其中大部分内容也可适用于其他Ti公司的DSP产品。 6.1汇编语言指令集概述 在学习C28x系列DSP的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最重要的操作数符号和寄存器经行详细说明。 在进行汇编讲解之前先来了解一下开发的核心——CPU。在TMS320C2000系列中,CPU 内核为: C20x/C24x/C240x:C2xLP: C27x/C28x:C27x、C28x 这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。 C28x芯片具有3种操作模式: 1.C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统, 因此,一般应使C28x芯片工作于该种模式。 2.C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。在该模式 下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。 3.C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x 代码生成工具编译生成的。 在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。 本节假设条件为芯片工作于C28x模式(OBJMODE=1,AMODE=0)。复位后,通过执行指令C28OBJ或者SETC OBJMODE将ST1中的OBJMODE位置1,芯片即可工作于C28x模式。 6.1.1 DSP中的操作数 汇编语言离不开操作符和操作数,操作符可以认为就是CPU的指令或者编译器上的伪指令,操作数是指令执行过程中的参与者,也可以说操作数就是指令所控制的对象。

DSP汇编指令总结

DS P汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) D1 D14 D13 D12 D 1D 1 D9 D8 D7 D 6 D5 D4 D3 D 2 D1 D0 长立即数寻址(双指令字) 第一指令字 D 1D14 D13 D12 D 1D10 D9 D8 D7 D 6 D5 D4 D3 D2 D1 D0 第二指令字 D 1D14 D 1 D12 D11 D1 0 D 9 D 8 D7 D 6 D 5 D4 D 3 D 2 D1 D 0 16位常数=16384=4000h 2、直接寻址 ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。

N规定是否改变ARP值,(N=0,不变) 4.3.1、算术逻辑指令(28条) 4.3.1.1、加法指令(4条); 4.3.1.2、减法指令(5条); 4.3.1.3、乘法指令(2条); 4.3.1.4、乘加与乘减指令(6条); 4.3.1.5、其它算数指令(3条); 4.3.1.6、移位和循环移位指令(4条);4.3.1.7、逻辑运算指令(4条); 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条) 4.3.2.2、临时寄存器指令(5条) 4.3.2.3、乘积寄存器指令(6条) 4.3.2.4、辅助寄存器指令(5条) 4.3.2.5、状态寄存器指令(9条) 4.3.2.6、堆栈操作指令(4条) 4.3.3、存储器与I/O操作指令(8条) 4.3.3.1、数据移动指令( 4条) 4.3.3.2、程序存储器读写指令(2条) 4.3.3.3、I/O操作指令(2条) 4.3.4、程序控制指令(15条) 4.3.4.1、程序分支或调用指令(7条) 4.3.4.2、中断指令(3条) 4.3.4.3、返回指令(2条) 4.3.4.4、其它控制指令(3条)

相关文档