DSP常用语言指令简介


2. 工作寄存器等指令举例
z Example1:MAR
*+,AR1;把当前工作寄 存器的内容加1,然后再改变工作寄存器为 AR1。 z Example2:LAR AR4,#8123h;把AR4的 值改变为立即数。 LAR AR0,16;(DP=6)把 地址=310H的内存单元内容装入AR0。 z Example3:SAR AR0,*+;(如果当前工 作寄存器=AR1)把AR0的内容拷贝到AR1 南航自动化学院DSP技术应用实验 指向的内存单元。 室
南航自动化学院DSP技术应用实验 室
z Example1:BCND
xxx, LEQ, C ;如果累加 器<=0并且进位C=1,那么程序就跳转到标 号xxx处执行;否则,程序顺序执行。根据 累加器ACC的内容产生的转移条件如下表格 所示。类似的指令还有:CC xxx。 z Example2:BANZ。第七页举例。
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
z Example
1:ADD 1,1;(假设DP = 6),把 第6个数据页的第一个内存单元内容左移一 位加到累加器 z Example 2:LACC *,4; (与SXM有关) z Example 3:ROL;把累加器内容循环左移 z Example 4:SACL *,0,AR7 ;把当前工作寄 存器指示内容左移0位送入累加器的低8位 z Example 5:RPT #15 SUBC * ;累加器减去当前寄存 器指的内容,连续减16次,结果存累加器
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
Example 6: AND 16 ;(假设DP = 4),把地址 =210H的内存单元内容和ACC相逻辑“与”,结果存 入累加器。 z Example 7:SFL ;把整个的ACC内容左移一位,低 位填0,最高位送入进位位,不受SXM影响。 z Example 8:SFR ;把整个的ACC内容右移一位,高 位根据SXM进行符号位扩展。例如: 1.执行前ACC=B0001234h,SXM=0,执行后ACC= 5800091Ah; 2.执行前ACC=B0001234h,SXM=0,执行后ACC =5800091Ah;
2. 工作寄存器等指令举例
Example4:ADRK #80h ;把当前工作寄存器内容 加一个立即数80h(注意立即数范围:00~FFh)。类 似的指令还有SBRK。 z Example5:BANZ指令使用举例。例: MAR *, AR0 ;当前ARP=AR0 LAR AR1, #03h ;AR1内容赋值为03h LAR AR0, #60h ;AR0内容赋值为60h ZAC ; 累加器ACC清零 loop: ADD *+, AR1 ;把当前工作寄存器AR0指向 的内存单元数值加到ACC,然后AR0内容加1,当前工 作寄存器指针指向AR1 BANZ loop, *-AR0 ;判断AR0是否为0,否则程序 转到loop,同时AR0的内容减1。 南航自动化学院DSP技术应用实验 返回到第10页 室
z
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
z Example
10:ZALR 1 ; (DP = 32:1000h107Fh) 把内存地址为1001的单元内容放入 ACC的高16位,而ACC的低16位设置为常 数:8000H。 z Example 11:ABS ;ACC取绝对值命令, 命令执行之后进位位=0。例如:命令执行 之前ACC=1234h,执行之后ACC=1234; 如果执行之前ACC=ffffh,那么程序执行 之后ACC=01h;一个特殊的情况ACC= 8000h,如果执行之前OVM位=0,那么 ACC=8000h;如果执行之前OVM=1,那 南航自动化学院DSP技术应用实验 么ACC=7ffffh 。 室
z
2. 工作寄存器等指令举例
z Example6:CMPR
根据CM的值执行比较功
能。 If CM = 00, 测试是否当前(AR)等于(AR0) If CM = 01, 测试是否当前(AR)小于(AR0) If CM = 10, 测试是否当前(AR)大于(AR0) If CM = 11, 测试是否当前(AR)不等于(AR0) 如果上述条件为真,那么TC=1,否则TC=0; 注意:在比较过程中,辅助寄存器的值当作无 符号整型数对待。 南航自动化学院DSP技术应用实验
DSP常用汇编语言指令简介
南航自动化学院DSP应用技术实验室
南航自动化学院DSP技术应用实验 室
一、指令系统简介
TMS320C24x系列DSP伪指令极为丰富,安装指令可 以分为六大类: 1. Accumulator(累加器指令), arithmetic(算术指 令), and logic instructions(逻辑操作指令)等 2. Auxiliary register(辅助寄存器指令),data page pointer instructions(数据页指针指令) 3. TREG(暂存单元指令),PREG(乘积单元指 令),multiply instructions (乘积指令) 4. Branch instructions (程序分支转移指令) 5. Control instructions (控制指令) 6. I/O and memory instruction(I/O和存储器指令)
4. 转移指令举例
Q LT LEQ GT GEQ NC C NOV BIO NTC TC UNC
室
3. 乘积寄存器等指令举例
z Example1:LT
0 ;(DP = 8:400h-47Fh)把 400H单元的内容送给TREG。 z Example2:MPY #031h;TREG单元内容乘以 一个立即数送入PREG单元内。 z Example3:PAC ; 根据PM的值左移或者右移 PREG的内容,然后送入累加器ACC。注:PM =0、1、2时,分别左移0、1、 4位, 如果PM= 3表示右移6位。
合集下载

DSP编程指令全集

DSP编程指令全集
ADDK# k
Add to Accumulator Short Immediate
TMS320C1x devices: Add an 8-bit immediate value to the accumulator. TMS320C2x, TMS320C2xx, and TMS320C5x devices: Add an 8-bit immediate value, right-justified, to
ADRK# k
Add to Auxiliary Register Short Immediate
Add an 8-bit immediate value to the current auxiliary register.
ANDdma
AND{ind} [ ,next ARP]
AND# lk [ ,shift]
ADDTdma
ADDT{ind} [ ,next ARP]
Add to Accumulator With Shift Specified by T Register
Left-shift the contents of the addressed data memory location by the value in the 4 LSBs of the T register; add the result to the accumulator. If a shift is specified, leftshift the data before the add. During shifting, low-order bits are zero-filled, and high-order bits are sign-extended if SXM = 1. TMS320C2xx and TMS320C5x devices: If the result of

DSP56800指令集与汇编语言

DSP56800指令集与汇编语言

4.7 算数与逻辑运算指令

加法 减法 比较 加1 减1 比较 等等
4.8 DSP56800中的并行处理




内核三个组成: 算数逻辑单元ALU、地址产生器AGU、 程序控制器PC 4.8.1 单并行处理 并行处理的原则:当ALU进行算数或逻辑 运算时,内核的通用数据总线CGDB上可 以进行数据传输,即MOVE执行。 单并行处理:ALU中的运算和CGDB上的 数据传输在1个周期内同时完成。
4.3 数据传输指令

LEA和POP指令 LEA-地址寄存器加/减1 eg: LEA X:(R0)+;将R0+1的值放入R0中
POP-从堆栈中弹出SP指向的当前值到某一 寄存器R中,然后SP的值减1。 eg: POP R


4.4 乘法与乘/加指令



IMPY:整数乘法指令实现16位整数与16位整数 的乘法,结果超出16位的话会出现错误,溢出标 志会置位。 MAC:将两个带符号的16位源寄存器的操作数 S1和S2的积与指定的36位目标累加器D进行加/ 减 MACR:除完成MAC功能,还实现结果四舍五入 MPY:实现16位带符号数相乘,并将32位乘积 存入目标寄存器中。 MPYR:实现16位带符号小数相乘,并将32位乘 积进行舍入处理后再存储在目标寄存器中。
4.3 数据传输指令




MOVE #$0010,A0 MOVE X0,X:R0 MOVE X:(R0+offset),X1 MOVE X:(R0+N),X1 MOVE Y1,X:(R0)+ MOVE Y1,X:(R0)+N LEA X:(R0)+ POP R MOVE (SP)-,R

DSP术语

DSP术语

AA0–An:数据/程序存储器或 I/O 设备的外部地址引脚。

绝对地址:永久分配给存储器位置的地址。

另请参见符号地址。

绝对列表器:将链接的文件接受为输入并创建 .abs 文件作为输出的调试工具。

这些 .abs 文件经汇编可产生显示对象代码绝对地址的列表。

如果没有该工具,可通过大量手动操作准备绝对列表。

ABU:请参见自动缓冲单元。

ACC:请参见累加器。

ACCB:请参见累加器缓冲器。

存取阶段:主处理器的获取、执行、存取 (FEA) 管道的第三个可选阶段,在此过程中会发生存储器存取(加载或存储操作)。

(TMS320C8x)ACCH:请参见累加器高字节。

ACCL:请参见累加器低字节。

累加器 (ACC):临时存储算术逻辑单元 (ALU) 操作结果并为后续 ALU 操作提供输入的寄存器。

ACC 可分两部分访问:累加器高 (ACCH) 和累加器低 (ACCL)。

累加器缓冲器 (ACCB):临时存储累加器 (ACC) 内容的寄存器。

ACCB 具有返回算术逻辑单元 (ALU) 的直接路径,并可与 ACC 一起进行算术和逻辑处理。

累加器高字节 (ACCH):存储在累加器 (ACC) 的最高有效位。

另请参见累加器。

累加器低字节 (ACCL):存储在累加器 (ACC) 的最低有效位。

另请参见累加器。

活动时间:显示帧不处于消隐状态的时间间隔。

显示像素的时间间隔。

另请参见消隐。

(TMS320C8x)活动窗口:当前选定用于移动、调整大小、编辑、关闭或一些其它功能的窗口。

传动器:将电子控制信号转换为物理操作的器件。

传动器可用于流控制阀、泵、定位驱动器、电机、开关、继电器和仪表。

A/D:请参见模拟到数字。

ADC:请参见模数转换器。

ADC 位:请参见检测完成位。

地址:存储在存储器中的程序代码或数据的逻辑位置。

寻址模式:指令解释其操作数来获取所需数据的方法。

寻址阶段:并行处理器的获取、寻址、执行 (FAE) 管道的第二阶段,在此过程中地址将计算得出并提供给 crossbar。

DSPC2000汇编指令

DSPC2000汇编指令

地址对应的 16/32 位数据。以上 7 种寻址方式都与“loc16/loc32”组合起来使用。
在间接寻址方式下,loc16/loc32 表示放在辅助寄存器(XAR0~XAR7)中的一个地址,
[loc16]/[loc32]表示这个地址对应的 16/32 位数据。
在堆栈寻址方式下,loc16/loc32 表示堆栈指针指向的一个堆栈单元,[loc16]/[loc32]
提示: 对于基于 C28x 的 DSP 芯片来说,以上的 7 种寻址方式仲出了 IO 空间寻址方式外其他
的都支持。
C28x 的大多数指令都是利用操作符中的8位字段来选择寻址方式和对寻址方式进行修
改.在 C28x 的指令系统中,这个8位字段用于以下寻址方式:
1. loc16:为16位数据访问选择直接/堆栈/间接/寄存器寻址方式。
6.2 寻址方式
通过 6.1 节当中读者们应当对汇编语言编程有了一定的了解,仅仅了解了汇编语言的操 作符还是不过的,接下来就从汇编语言最根本的开始学习——寻址方式寻址方式就是寻找操 作数或者操作数地址的方式,在存储器中,操作数或指令字写入或读出的方式,有地址指定 方式、相联存储方式或堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。 当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。C28x 系列 DSP 的指 令集采用 7 种寻址方式: 1. 直接寻址方式:DP(数据页指针),在此方式中,16 位的 DP 寄存器被当做一个固定的
因此,一般应使 C28x 芯片工作于该种模式。 2. C27x 目标——兼容模式:在复位时,C28x 的 CPU 处于 C27x 目标-兼容模式。在该模式
下,目标码与 C27xCPU 完全兼容,且它的循环—计数也与 C27xCPU 兼容。 3. C2xLP 源——兼容模式:该模式允许用户运行 C2xLP 的源代码,这些源代码是用 C28x

DSP技术与应用_线性汇编语言简介

DSP技术与应用_线性汇编语言简介
所传递的参数
C代码转换为线性汇编
• 第二步:暂时存放临时数据的寄存器定名, 由.reg ( register)完成
.reg
addr_a,addr_x
.reg
m,n
.reg
product,sum
C代码转换为线性汇编
• 第三步,数据初始化
MV MV ZERO
cptr0,addr_a cptr1,addr_x sum
C代码转换为线性汇编
• short DP(short *m, short *n, short count)
•{
•
short i ;
•
short product ;
•
short sum = 0 ;
•
for(i=0;i<count;i++)
•
{
•
product = m[i] * n[i] ;
•
sum += product ;
前两句将数组a[ ]和x[ ]的首地址存入名为addr_a 和addr_x的寄存器变量,以便其后实现对数组 的访问;最后一句是累加寄存器清零。
C代码转换为线性汇编
• 第四步处理程序的循环体部分
定义一个标号loop:作为循环返回的标志;然后 按照原C程序语句顺序改写成汇编语句(不必指 定指令执行的功能单元):
•
}
•
return(sum) ;
•}
C代码转换为线性汇编
• 第一步:定义函数名称、实现参数传递 short DP(short *m, short *n, short count)
.def _DP _DP .cproc cptr0,cptr1,vptr
1).def为definition的缩写 2).cproc表示本函数是C可调用函数,其后为

DSP实验:常用指令及数据存储实验

DSP实验:常用指令及数据存储实验

DSP实验一:常用指令及数据存储实验一、实验目的1、了解DSP开发系统的组成和结构;2、熟悉DSP开发系统的连接;3、熟悉CCS的开发界面;4、熟悉C54X系列的寻址系统;5、熟悉常用C54X系统指令的用法6、掌握TMS320C54的程序空间和数据空间的分配7、熟悉操作TMS320C54数据空间的指令二、实验设备计算机、CCS2.0版软件,DSP仿真器、实验箱。

三、实验系统相关资源1、DSP芯片引脚XF连接LED5,可通过ssbx,rsbx改变XF的值来控制LED52、系统时钟频率为10MHz3、TMS320VC54存储器分配图四、实验步骤1、用仿真机将计算机与数字信号处理实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS软件。

2、新建一个工程:点击Project-new,输入项目名Exp1, 并将工程文件保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。

3、编写源程序:3.1 新建一个源文件File-New-Source File,出现文本编辑窗口3.2 复制以下代码到编辑窗口;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs.global _main;声明_main可被其他模块引用,程序加载到目标板后,;会自动跳转到标号为_main的汇编指令STACK: .usect ".stack",10h.text_main:stm #STACK+10h,sp ;设置堆栈指针STM #0, CLKMD ; (to divider mode before setting) TstStatu1:LDM CLKMD, AAND #01b, A ;poll STATUS bitBC TstStatu1, ANEQSTM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz loop:ssbx xf ;将XF置1,熄灭LED5call delay ;调用延时子程序,延时rsbx xf ;将XF置0,点亮LED5call delay ;调用延时子程序,b loop ;程序跳转到"loop";延时子程序delay:stm 270fh,ar3 ; 270fh=9999loop1:stm 0f9h,ar4 ; 0f9h=249loop2:banz loop2,*ar4-banz loop1,*ar3-ret.end注意:(1)源代码的书写有一定的格式,每一行代码分为三个区:标号区、指令区和注释区。

第三章 DSP的指令系统


TC=1
CMPM Smem,#1K
CMPR CC , ARX
CC=2=10b, IF (AR4) > (AR0), TC=1, ELSE TC=0
程序控制指令
转
移指令
(B,BC);
调用指令 (CALL) 中断指令
(INTR,TRAP)
返回指令 (RET)
循环指令 (RPT) 堆栈操作指令 (FRAME,POP) 混合程序控制指令 (IDLE,NOP)
sth
利用SUBC实现除法

在‘C54X中没有提供专门的除法指令, 一般有两种方法来完成除法。一种是用 乘法来代替,除以某个数相当于乘以其 倒数,所以先求出其倒数,然后相乘。 这种方法对于除以常数特别适用。另一 种方法是使用SUBC指令,重复16次减法 完成除法运算。
利用SUBC完成Temp1/Temp2
FRCT Fractional mode bit in ST1 OVA Overflow flag for accumulator A in ST0 OVB Overflow flag for accumulator B in ST0 OVdst Overflow flag for the destination accumulator (A or B) OVdst_ Overflow flag for the opposite destination accumulator (A or B) OVsrc Overflow flag for the source accumulator (A or B) OVM Overflow mode bit in ST1 PA 16-bit port immediate address (0-65535) PAR Program address register SXM Sign-extension mode bit in ST1 T Temporary register C Carry bit in ST0 pmad 16-bit immediate program-memory address (0 Pmem Program-memory operand dmad 16-bit immediate data-memory address (0 Dmem Data-memory operand

DSP3

25
3.1 寻 址 方 式
( 2 ) 双操作数间接寻址
用途:用在完成两个读或一个读且一个写的指令中。 说明:该指令只有一个字长,只能以间接寻址的方式工作。
格式如下:
15~8 操作码 7~6 Xmod 5~4 Xar 3~2 Ymod 1~0 Yar
其中,15~8位:指令操作码;7~6位为Xmod,定义了用于访问Xmem操作数间接 寻址方式的类型(见表3-5);5~4位为Xar,确定了包含Xmem地址的辅助寄
如:MVPD,TABLE,*AR7-;(TABLE)→(AR7) and AR7=AR7-1
③ I/O端口寻址(2条)
如:PORTR,FIFO,*AR5;从端口FIFO读数据→(AR5) PORTW,*AR2,BOFO;将(AR2)→BOFO端口
④ *(1K)寻址:用一个符号或常数确定一个 数据M地址
27
3.1 寻 址 方 式
说明: ① 这种寻址方式下,对MMR执行写操作开销最小;
② 仅有8条指令可进行MMR寻址操作: LDM MVDM MVMD MMR,dst dmad,MMR ;将MMR内容装入累加器 ;将数据存储器单元内容装入MMR
2. 绝对寻址
3.1 寻 址 方 式
含义:指令中包含所需寻址的M单元地址 或I/O端口地址; 用途:利用16位地址寻址M或I/O 说明:绝对寻址的四种类型 ① 数据存储器寻址:程序标号or数据, 表示数据M地址 如:MVKD,DATA,*AR5;(DATA)→(AR5)
6
3.1 寻 址 方 式
② 程序存储器寻址:
例如:LD
*AR2+,A ;表示将由AR2寄存器内容所指向的数据存储
器单元中的数据传送到累加器A中,然后AR2中的地址加1。

AT32 DSP指令和库说明书

AN0036应用笔记DSP Instruction and Library on AT32前言这篇应用笔记主要介绍ARM Cortex-M4F的DSP指令、DSP相关库函数以及移植DSP库到AT32 MCU 的方法,并在最后以具体示例介绍一些库函数在应用中的使用方法。

为了充分利用本应用笔记中的信息,用户应熟悉AT32 微控制器系列。

可以参考以下资料:⏹《Cortex--M4权威指南》⏹《数字信号与处理》(作者:赵健、王宾等)清华大学⏹《信号与系统第二版》(作者:奥本海姆)⏹CMSIS package下载地址https:///ARM-software/CMSIS_5/releases/tag/5.6.0⏹CMSIS DSP官方教程/pack/doc/CMSIS/DSP/html/index.html⏹CMSIS NN官网教程/pack/doc/CMSIS/NN/html/index.html⏹安富莱_STM32-V5开发板_DSP数字信号处理教程(笔者强烈推荐)/forum.php?mod=viewthread&tid=94547&highlight=CMSIS-NN%C9%F1%BE%AD%CD%F8%C2%E7%BD%CC%B3%CC注:本应用笔记对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。

支持型号列表:支持型号AT32F4系列目录概述 (6)AT32 MCU与M4F内核 (7)系统架构 (8)ARM官方CMSIS DSP库概述 (13)CMSIS DSP库说明 (13)CMSIS DSP库文件 (13)CMSIS DSP库示例 (13)CMSIS DSP库的工具链支持 (13)编译生成DSP的.lib库文件 (13)CMSIS-DSP 文件夹结构 (14)CMSIS DSP库移植到AT32 (15)ARM官方CMSIS DSP函数详解 (15)AT32 DSP库快速使用 (15)硬件资源 (15)软件资源 (16)DSP demo使用 (16)常用示例展示 (17)班级成绩统计示例 (17)卷积示例 (17)点积示例 (18)频率仓示例 (19)FIR 低通滤波示例 (21)图形音频均衡器示例 (23)线性插值示例 (26)矩阵示例 (27)信号收敛示例 (27)正弦余弦示例 (29)方差示例 (29)CMSIS NN with DSP (31)卷积神经网络示例 (32)门控循环单元示例 (33)DSP Lib 的生成和使用 (34)DSP Lib 生成 (34)DSP Lib 使用 (34)版本历史 (36)表1. Cortex-M4与Cortex-M3的区别 (9)表2. 单周期MAC指令介绍 (9)表3. Cortex-M4 DSP指令比较 (9)表4. 编译器对DSP指令的支持 (11)表5. CMSIS-DSP 文件夹结构 (14)表6. 文档版本历史 (36)图1. Cortex-M4 内核架构 (8)图2. AT32F403A系统架构图 (12)图3. AT-START-F403A V1.0 实验板 (16)图4. 卷积算法框图 (18)图5. 点积算法框图 (19)图6. 频率仓算法框图 (19)图7. 输入信号的时域 (20)图8. 输入信号的频域 (20)图9. FIR 低通滤波算法框图 (21)图10. 低通滤波时域响应 (22)图11. 低通滤波频域响应 (22)图12. 输入信号的时域信号和频域信号 (23)图13. 输出信号的时域信号和频域信号 (23)图14. 五级滤波器联算法框图 (24)图15. 从200Hz到2KHz的频宽响应 (24)图16. 19X5频率系数的过滤器响应 (24)图17. 输入信号对数线性调频 (25)图18. bandGains调频输出信号 (25)图19. 快速数学函数算法框图 (26)图20. 插值函数算法框图 (26)图21. 矩阵算法框图 (27)图22. 信号收敛算法框图 (28)图23. 使用正弦余弦演示勾股定理算法框图 (29)图24. 方差算法框图 (30)图25. CMSIS NN程序架构 (31)图26. CIFAR10 CN算法框图 (32)图27. 门极递归单元图 (33)图28. DSP Lib生成 (34)图29. DSP Lib使用 (35)概述AT32F4xx使用的是ARM Cortex®-M4F内核。

DSP编程指令集

ADDHdma
ADDH{ ind} [ ,next ARP]
Add High to Accumulator
Add the contents of the addressed data memory location to the 16 MSBs of the accumulator. The LSBs are not affected. If the result of the addition generates a carry, the carry bit is set to 1. TMS320C2x, TMS320C2xx, and TMS320C5x devices: If the result of the addition generates a carry from the accumulator’s MSB, the carry bit is set to 1.
ADDdma [ ,shift]
ADD{ ind} [ ,shift [ ,next ARP] ]
ADD# k
ADD# lk [ ,shift2]
Add to Accumulator With Shift
TMS320C1x and TMS320C2x devices: add the contents of the addressed data memory location to the accumulator; if a shift is specified, left-shift the contents of the location before the add. During shifting, loworder bits are zero-filled, and high-order bits are sign-extended. TMS320C2xx and TMS320C5x devices: add the contents of the addressed data memory location or an immediate value to the accumulator; if a shift is specified,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档