DSP寻址方式与指令系统

合集下载

寻址方式与指令系统_DSP控制器原理与应用技术_[共2页]

寻址方式与指令系统_DSP控制器原理与应用技术_[共2页]

第3章软件开发基础33 整个开发过程可分为四大步骤。

第一步,编制源程序。

源程序的编制,可采用汇编语言,也可采用高级语言(主要是C/C++语言)。

其中汇编程序运行速度最快,效率最高,能充分利用DSP芯片所有硬件特性,并能直接控制硬件资源,因此在数学运算、信号处理和高速测控等场合下特别有效。

但是由于不同DSP芯片采用的汇编语言不同,因此采用汇编编程比较繁杂,开发周期长,且程序的通用性、可移植性相对较差。

采用高级语言可大大提高开发速度,以及程序的通用性和可移植性;但是某些情况下(如实现FFT)C/C++代码的效率无法与汇编代码相比,不能最佳利用DSP内部硬件资源,对某些硬件的控制也不如汇编程序方便,甚至无法实现。

因此很多情况下,DSP应用程序往往需要C/C++和汇编混合编程来实现。

早期DSP软件开发一般使用汇编实现高效的算法,该开发方式对于小型系统的实现非常有效。

然而,随着DSP应用系统规模和复杂程度的提高,软件开发需要的工作量越来越大。

在开发时间和成本的限制下,开发方式逐渐向高级语言转变。

因此,F28335 DSP控制器一般采用C/C++语言或混合编程的方法进行软件开发。

第二步,通过代码产生工具产生可执行代码。

代码产生工具包括汇编语言工具和C/C++语言工具。

汇编语言工具的功能是将汇编程序转化为公用目标文件格式(Common Object File Format,COFF)的可执行代码。

TMS320C2000系列DSP的汇编语言工具主要包括汇编器、连接器、归档器、十六进制转换程序等。

由汇编器(Assembler)将汇编文件转化为COFF目标文件(.obj);由连接器(Linker)将COFF目标文件连接起来产生一个可执行模块(.out);由归档器(Archiver)将一组文件归入一个归档库,以建立目标文件库;由十六进制转换程序将COFF目标文件转换成可被编程器接收的TI-Tagged、Intel、Motorola或Tentron目标文件格式。

DSP第四章 TMS320C20X系列的寻址方式及汇编指令

DSP第四章 TMS320C20X系列的寻址方式及汇编指令

LT *0+
执行指令前: ARP=1, (AR1)=100H,(AR0)=3 执行操作: 用AR1所指的数据存储器100H内 容装载暂时寄存器; 执行指令后: ARP=1,(AR1)=103H
⑤减去索引量
方法
举例
指令使用AR内容作
LT *0-
为数据存储器地址,
执行指令后AR内容 执行指令前:
自动减去ARO的内容。 ARP=1, (AR1)=100H,(AR0)=3
执行操作:
用AR1所指的数据存储器100H内
容装载暂时寄存器;
执行指令后:
ARP=1,(AR1)=FEH
⑥加上索引量,反向进位
方法
举例
指令使用AR内容作为 数据存储器地址,执 行指令后AR内容自动 加上AR0的内容,该 加法采用反向进位方 法。 注:主要用于FFT算 法
LT *BR0+
把AR0加到辅助寄存器中时,地址以位倒序的方 式产生,即进位是从左向右,而不是从右向左进位。
LTP ind [,ARn]
MAC MAC pma , dma
乘且累加
MAC pma, ind [ , ARn]
MACD MACD pma, dma
乘且累加,并将被寻址数据移至下一单元
MACD pma, ind [, ARn]
MPY MPY dma
MPY ind [, ARn]
MPYA/MPYS
累加前次乘积,再将TREG与被寻址数相乘
PAC PAC
PREG转入累加器ACC
SPH
存储PREG高16位,直接或间接寻址
SPL
存储PREG低16位,直接或间接寻址
例1:MAC
0FF00H,02H ;DP=6,地址300H~37FH,PM=0, CNF=1

第四章DSP指令系统

第四章DSP指令系统

3 、累加器寻址 累加器寻址是用累加器中的数作为一个地址。这种寻址方式可用来 对存放数据的程序存储器寻址。共有两条指令可以采用累加器寻址: READA Smem WRITA Smem READA Smem: 以累加器A的内容为地址,从程序存储器中读出 数据,传送到以Smem为地址的数据存储器中。 WRITA Smem:将以Smem为地址的数据存储器中的数写到以累 加器A的内容为地址的程序存储器中。
a、数据存储器(dmad)寻址 用一个符号或一个数来确定数据存储空间的一个地址 例如: MVKD sample,*AR5 “把数据存储器的sample单元中的内容移到AR5寄存器 指定的数据存储单元中,由符号sample 给出的地址就是数 据存储单元的地址,sample就是一个dmad。” b、程序存储器(Pmad)寻址 用一个符号或一个数来确定程序存储器空间的一个地址 例如: MVPD TABLE,*AR5 “把程序存储器的TABLE地址单元中的内容移到AR5寄 存器指定的数据存储单元中,由符号TABLE 给出的地址就 是程序存储单元的地址, TABLE就是一个Pmad。
1 、立即寻址
立即寻址就是在指令中包含有操作数(立即 数)。 立即寻址的指令有短立即数和长立即 数两种: (1) 短立即数寻址( 3,5,8,9位的立即 数),单 字指令。 (2) 长立即数寻址(16位的立即数),双字指令。
例如: LD #0h,ARP LD #13,ASM LD #50,DP LD #1234h,A
1、分支转移操作 功能:可执行分支转移,循环控制以及子程序操作。 方法:通过分支转移指令改写PC,可以改变程序的流向。 分类:有条件转移和无条件转移;延迟和不延迟操作。 指令说明: A. 条件分支转移 BC[D] pmad, cond[,cond[,cond]] 如果指令中规定的条件得到满足,就用指令中所给出的地址 加载PC; BANZ[D] pmad , Sind 如果当前辅助寄存器不等于0,就用指令中规定的地址加载 PC。 B. 无条件分支转移 B[D] pmad ; 用指令中给出的地址加载PC BACC[D] src ;用指定的累加器的低16位作为地址加载PC。

第4章 TMS320F28x系列DSP的寻址方式及指令系统

第4章 TMS320F28x系列DSP的寻址方式及指令系统
第4章 TMS320F28x系列DSP的寻址方式及 指令系统
4.1 TMS320F28x系列DSP的寻址方式 4.1.1 寻址方式选择位AMODE 4.1.2 直接寻址方式 4.1.3 堆栈寻址方式 4.1.4 间接寻址方式 4.1.5 寄存器寻址方式 4.1.6 其他寻址方式 4.1.7 32位操作数的定位 4.2 TMS320F28x系列DSP指令系统概述
在 F2812间接寻址方式中,使用哪个辅助寄存器指针在指令中并不 被明确指出。而在 C2xLP的间接寻址方式中,3位长度的辅助寄存器指 针被用来选择当前使用哪个辅助寄存器以及下次操作将使用哪个辅助寄 存器。
汇编器/编译器对AMODE位的追踪
编译器总是假定AMODE=0,所以它只使用对AMODE=0 有效的寻址模式。而汇编器可以通过设置命令行选项实现默认 AMODE=0或者AMODE=1。 √ – v28 ;假定AMODE=0(C28x寻址方式) – v28 – m20 ;假定AMODE=1(与C2xLP全兼容的寻址方式) √ 在文件中使用内嵌伪指令
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
周鹏 安徽工程大学电气工程学院
周鹏 安徽工程大学电气工程学院
寻址方式是指CPU根据指令中给出的地址信息
来寻找指令中操作数物理地址的方式,即获得操作
数的方式。指令系统即各种指令的集合,或称指令
集 。 本 章 简 要 介 绍 C28x 系 列 ( TMS320F2812 属 于 C28x系列)DSP的寻址方式和指令系统。

《DSP原理与应用》寻址方式和指令系统

《DSP原理与应用》寻址方式和指令系统

《DSP原理与应用》寻址方式和指令系统三、TMS320LF240x寻址方式和指令系统3.1 寻址方式TMS320LF240x指令集采用3种基本的存储器寻址方式:立即寻址方式、直接寻址方式和间接寻址方式。

在立即寻址方式中,指令中所需要的常数作为指令的操作数直接给出。

立即寻址方式包括短立即寻址和长立即寻址。

在短立即寻址中,指令字包含一个8位、9位或13位的操作数,而长立即寻址采用16位的操作数。

当需要访问数据存储器时,用户可采用直接或间接寻址方式。

直接寻址方式将指令字的7位与数据存储器页指针(DP)的9位连接起来,形成16位数据存储器地址。

间接寻址通过8个16位辅助寄存器访问数据存储器。

3.1.1 立即寻址方式在立即寻址方式中,指令字中包含指令所需的一个常数。

对于短立即寻址,采用短立即寻址的指令将一个8位、9位或13位的常数作为操作数。

短立即寻址指令为一个单指令字,并且有一个常数嵌在该指令中。

长立即寻址的指令将一个16位常数作为操作数,从而需要两条指令字。

该常数作为第2条指令字被发送,该16位值可以是绝对常数或二进制补码。

如1:RPT #49 ;将紧跟RPT指令后的那条指令执行50次。

代码是:10111011 00110001 ;前面是RPT指令代码,后面是8位常数=49。

如2:ADD #65534,2 ;将数据65534左移两位后,再将结果加到累加器。

代码是:101111111001 0010 ;前面12位是立即寻址的ADD代码,后面是移位数。

11111111 11111110 ;是16位常数=65534=FFFEh。

3.1.2 直接寻址方式在直接寻址方式中,数据存储器地址以128为单位被分成若干块,这些块被称为数据页。

64K的数据存储器总共包含512个数据页,标号为0~511,如下表3-1所列。

当前数据页由状态寄存器ST0中的9位数据页指针(DP)值决定。

除数据页之外,处理器还必须知道该页上被访问的特定单元,这取决于7位偏移量,见表3-1。

DSP教程4.TMS320C55x的指令系统

DSP教程4.TMS320C55x的指令系统
直接和间接寻址方式可以用于对寄存器位的寻址。
例4-12,@bitoffset用于对寄存器位的寻址。
(1)BSET @0,AC3
;CPU将AC3的位0置为1
例4-13,*ARn用于对寄存器位的寻址,设AR0=0。
(1)BSET *AR0,AC3
;CPU将AC3的位0置为1
11
4.1.7 I/O空间的寻址
Baddr Bitin BitOut
BORROW
CARRY
符号 Cmem cond CSR Cycles dst Dx kx Kx lx Lx
含义 系数间接寻址操作数 条件表述 单指令重复计数寄存器 指令执行的周期数 目的操作数:累加器,或辅助寄存器的低16位,或临时寄存器 X位长的数据地址
X位长的无符号常数
表4-5 循环寻址
指针 线性/循环 寻址配置位 支持主数据页 缓冲区首地址寄 缓冲区大小寄存 存器 器
AR0
AR1 AR2 AR3 AR4 AR5 AR6 AR7 CDP
ST2_55(0)=AR0LC
ST2_55(1)=AR1LC ST2_55(2)=AR2LC ST2_55(3)=AR3LC ST2_55(4)=AR4LC ST2_55(5)=AR5LC ST2_55(6)=AR6LC ST2_55(7)=AR7LC ST2_55(8)=CDPLC
符号 【】 40 含义 可选的项 若选择该项,则该指令执行时M40=1 累计器溢出状态位:ACOV0~ACOV3 累计器AC0~AC3 辅助寄存器:AR0~AR7 寄存器位地址 移进的位:TC2或CARRY 移出的位:TC2或CARRY CARRY位的补 进位位
16
ACOVx Acx,Acy,Acz, ACw ARx,ARy

DSP常用汇编语言指令简介

DSP常用汇编语言指令简介
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
Example 1:ADD 1,1;(假设DP = 6),把 第6个数据页的第一个内存单元内容左移一 位加到累加器 Example 2:LACC *,4; (与SXM有关) Example 3:ROL;把累加器内容循环左移 Example 4:SACL *,0,AR7 ;把当前工作寄 存器指示内容左移0位送入累加器的低8位 Example 5:RPT #15 SUBC * ;累加器减去当前寄存 器指的内容,连续减16次,结果存累加器
南航自动化学院DSP技术应用实验 室
LAR AR1,#200H ;设定AR1的值
(2)指明间接寻址选项(*,*+,*-,*0+)) 例如:MAR *,AR0 1, ;然后指向工作寄存器AR1 (3)指明下一个辅助寄存器(可选) 例如: MAR *,AR1 ADD *+,AR4 ;把当前工作寄存器AR1指 向的数据单元内容加至累加器,然后AR1内容加 1,并把工作寄存器定为AR4
2. 工作寄存器等指令举例
Example1:MAR *+,AR1;把当前工作寄 存器的内容加1,然后再改变工作寄存器为 AR1。 Example2:LAR AR4,#8123h;把AR4的 值改变为立即数。 LAR AR0,16;(DP=6)把 地址=310H的内存单元内容装入AR0。 Example3:SAR AR0,*+;(如果当前工 作寄存器=AR1)把AR0的内容拷贝到AR1 南航自动化学院DSP技术应用实验 指向的内存单元。 室
4. 转移指令举例
南航自动化学院DSP技术应用实验 室
EQ NEQ LT LEQ GT GEQ NC C NOV BIO NTC TC UNC

DSP课件 第8讲_第3章寻址方式及指令系统_...PPT精品文档28页

DSP课件 第8讲_第3章寻址方式及指令系统_...PPT精品文档28页

BLOCK*/
B01
: origin = 0200H ,length = 0080H/* DARAM B0
BLOCK*/
B02 : origin = 0280H ,length = 0080H
B11
: origin = 0300H ,length = 0080H/* DARAM B1
BLOCK*/
2407_t1.cmd DSP控制器原理及应用
注释域以分 号;开头, 注释行可以 单独占用一 行或多行。
DSP控制器原理及应用
TI DSP汇编语言书写规范
标号与变量必须从编辑窗口的第1列写,指令( 包括伪指令)决不能从第1列开始,包括宏指令 。例如某汇编源程序:
_c_int0: SETC INTM CLRC SXM CLRC OVM CLRC CNF
2407_t1.cmd DSP控制器原理及应用
(1)MEMORY说明
MEMORY
{
PAGE 0 :VECS : origin =0000H , length = 0040H /* PROGRAM
PVECS : origin =0044H , length = 0100H
/* Peripheral Interrupt Vectors */
还可以使用包含文件(.h)。包含文件 伪指令使用形式 .include “file.h”
DSP控制器原理及应用
常用的段定义伪指令
.text 默认的初始化程序段,通常包含有可 执行程序代码,存放于程序存储器区域
.data 默认的初始化数据段(程序或数据区) .bss 默认的未初始化数据段,通常是为未
功能:在当前段连续存入1个或多个16位整 数
定义字节伪指令 格式:.byte value1,[,…,valuen]

TMS320C54X DSP 芯片的指令系统

TMS320C54X DSP  芯片的指令系统

分成512页,每页128个单元 DP取值范围:0~511 7位偏移地址范围:0~127 不改变基地址,可寻址连续的128个单元 DP复位值为0

直接寻址
DP值 00000 0000 偏移量 000 0000 „ 111 1111 000 0000 „ 111 1111 000 0000 „ 111 1111 „ 000 0000 „ 111 1111 数据存储器 第0页:0000H--007FH
例:MVDM 2000H,T RPT #19 ;数据块的复制 ;SAMPLE为常数表示 ;的地址 MVKD 0200H,*AR2+ MVMD AR2,SAMPLE

程序存储器地址(pmad)寻址
确定程序存储器中的一个地址 主要指令:

FIRS MACD MACP MVDP MVPD
Xmem, Smem, Smem, Smem, pmad,
位倒序寻址

主要用于FFT算法。 8点FFT的位码倒序:

若输入顺序:X(0)、X(1)、X(2) 、X(3)、 X(4) 、X(5) 、X(6)、X(7); 则输出顺序:Y(0)、 Y(4)、Y(2) 、Y(6)、 Y(1) 、Y(5) 、Y(3)、 Y(7).

16点FFT的位码倒序:表3.1.6

累加器:

Src,dst,dst_,A,B

移位值:

ASM,TS,SHFT,SHIFT K,k3,k5,k9,lk

立即数:


运算符及其优先级,表3.2.2
3.1 寻址方式


两种:数据寻址和程序寻址 数据寻址(7种基本方式)
立即数寻址 绝对地址寻址 累加器寻址 直接寻址 间接寻址 存储器映射寄存器寻址 堆栈寻址

第六章 DSP寻址方式和汇编指令

第六章 DSP寻址方式和汇编指令

第六章 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代码生成工具编译生成的。

在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。

第六章DSP寻址方式和指令系统

第六章DSP寻址方式和指令系统

间接寻址选项
选项 操作数 例子 LT *;(AR)—>TREG, AR 不变 不增不减 *
加1
减1
*+
*-
LT *+;(AR)—>TREG, AR +1—>AR
LT *-;(AR)—>TREG, AR–1—>AR LT *0+;(AR)—>TREG, AR+AR0—>AR LT *0-; (AR)—>TREG, AR–AR0 — >AR LT *BR0+; (AR)—>TREG, AR+AR0—>AR, 反向进 位加法
(18) SFL
功能:累加器左移; 句法:SFL 执行:PC+1; ACC(31)->C ACC(30:0)->ACC(31:1) 0->ACC(0) 状态位:执行不受SXM影响,结果影响C 说明:无
(19)SFR
功能:累加器算术右移; 句法:SFR 执行:PC+1; ACC(31:1)->ACC(30:0) ACC(0)->C if SXM=0, 0->ACC(31) else SXM=1 ACC(31)->ACC(31) ; 状态位:执行受SXM影响,结果影响C 说明:无
(4)ADDS
功能:符号抑制加至累加器; 句法:ADDS dma ;直接寻址 ADDS ind[,Arn];间接寻址 n=0~7 ind: 间接寻址操作选项 执行:PC+1; (ACC)+(dma) ->ACC; 状态位:执行受OVM影响,不受SXM影响,结果 影响C和OV 说明:符号扩展位被抑制;进位位按正常方式产 生。
6.1.2 直接寻址方式

DSP实验二 基本指令及寻址方式

DSP实验二 基本指令及寻址方式

实验二基本指令及寻址方式DSP的最大优势在于数据处理,所以DSP数据处理指令非常多,包括算术指令、逻辑指令或数据加载与传送指令。

并且与常规处理器相比,DSP还针对某些具体应用专门填加了一些处理指令,以方便和加快数据处理速度。

1.实验目的:(1)学习DSP指令的使用(2)学习并掌握DSP的基本寻址方式2.实验器材仿真器,DEMO板3.实验内容编写程序实现数据的算术运算4.DSP寻址方式(1)立即数寻址这种寻址方式最简单,立即数包含在指令中。

立即数包括短立即数和长立即数;短立即数为3、5、8、9Bit;长立即数为16位。

立即数包含在单字节和双字节指令中,短立即数为3、5、8、9Bit包含在单字节指令中,16-Bit指令包含在双字节指令中。

例1:RPT #99;将下一条指令执行100次(短立即数寻址)nop;Sacl data1;Dp .set 214RPT #dpADD #16384,2;将16384左移2位后加到累加器(ACC:32)中(长立即数寻址)(2)直接寻址、在直接寻址中,指令代码包含了数据存储器地址的低7位。

这7-bit位作为偏移地址与数据页指针相结合共同形成16-bit数据存储器实际地址。

如下图所示。

例30页0000-007FH1页0080-00FFH2页0100-017FH3页0180-01FFH4页0200-027FH5页0280-02FFH511页FF80-FFFFH.dataData_DP:Var0 .word 3 0200:3Var1 .word 2 0201:2Var2 .word 1 0202:1Result .word 0 0203:0.textLDP #Data_DPSUM0: LACC Var1 ACC=2LACC 2 ACC=1LACC #Var1 ACC=0201H(3) 间接寻址我们可以使用系统提供的8个辅助寄存器AR0~AR7实现灵活的间接寻址,通过间接寻址方式可以寻址数据存储器的64K 中任何一个寄存器单元。

DSP-04寻址方式与指令系统

DSP-04寻址方式与指令系统

80
H. 乘积寄存器(PREG)的操作 (6条) 1. 装高位 LPH dir LPH ind[,ARn] 2. 存贮PREG高位 SPH dir ;将PREG按PM规定移位后,送高位到数据存贮器 ;指定内容送PREG高位
SPH ind[,ARn] 执行时是将PREG送乘积移位器中处理结果不影响PREG
64
间接寻址七种操作方式:
方式 操作数符号
不增不减 增1 减1 加变量值 减变数值 反向进位加变址量 反向进位减变址量 例
* *+ **0+ *0*BRO+ *BRO-
AR内容所指数据存贮器地址内容加载暂时寄存器(TREG) AR内容加载后AR内容±1 AR内容加载后AR内容±ARO的内容 AR加载后,反向进位方式将当前AR内容±ARO的内容
例: SAR
ARX, ind [, ARn]
AR0, *+,
;执行中要修改,且要减、增量
例: SAR ARO,30; (DP=6)

ARP=0 AR0=401 401=0

ARP=0 401=401 AR0=402
ARO=37H
31EH=18H
ARO=37H
31EH=37H
70
3.
修改ARP MAR dir MAR ind [,ARn] 例子:MAR *,AR1 前 ARP=0 ARB=7 后 ARP=1 ARB=0
第四章 汇编语言寻址方式及指令系统
格式:操作码 共86条: [操作数] [;注释]
①数据传送类(39条)
②算术运算类 (19条)(加法4条,减法5条,乘法6条,平方2条,
标准化2条、)
③逻辑运算类(9条) ④分支转移类(19条)

DSP指令系统及特点

DSP指令系统及特点

否则,用ARF来确定辅助寄存器。ARF的值装入ARP。
第13页/共62页
单操作数间接寻址的硬件框图
第14页/共62页
MOD域 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
操作码语法 *ARx *ARx*ARx+ *+ARx *ARx-0B *ARx-0 *ARx+0 *ARx+0B *ARx-% *ARx-0% *ARx+% *ARx+0% *ARx(lk) *+ARx(lk) *+ARx(lk)% *(lk)
用来在中断和 子程序调用时 自动保存程序 计数器(PC) 中的数值,也 能用来保护现 场或传送参数
从高地址向低地址方向生长, SP)来管理堆栈,SP始终指向 堆栈中所存放的最后一个数据, 即SP指针始终指向栈顶。在压 入操作时,先减小SP的值,再 将数据压入堆栈;在弹出操作 时,先从堆栈弹出数据,再增 加SP的值。
方法
举例
用一个符 号或一个 常数来确 定外部 I/O口地

PORTR FIFO,*AR5
第7页/共62页
允许所有使
用Smem寻址
(4)*(lk)寻址
的指令去访
问数据空间
方法 举例 特点
的任意单元
而不改变数
据页指针
用一个符号
(DP)的值,
或一个常数
也不用对ARx
来确定数据
进行初始化
存储器中的 一个地址
整序前FFT 变换结果
X(0)
位倒序 0000
AR1更新的地址值 AR0=0000 10002

第六章_DSP的汇编语法寻址及指令系统1

第六章_DSP的汇编语法寻址及指令系统1

语句标号
由字母、数字、_、$组成,最多不超过 32个字符,对大小写敏感,第一个字符 不能是数字。后跟 :,但分号不是语句 标号的组成部分。
助记符
1.助记符不允许从第一列开始,否则被认为是语 句标号。 2.助记符可以是机器指令 (如ABS,MPYU,SPH 等)、伪指令(如.data, .list, .set等)、宏 指令(如.macro, .var, .mexit等)和宏调用。
的 位 描 述 ST1
C 移的ADD或SUB指令的执行,在这种情况下,ADD仅可设置进位位,而SUB仅能清 除进位位,不能对进位位产生其他影响。移位和循环移位指令以及SETC、CLRC 和LST指令也影响该位。条件转移、调用和返回指令可根据C状态作为执行的条 件。复位时,C被设置为1 XF引脚状态位。该位决定XF引脚的状态。XF是一个通用输出引脚。可由SETC XF指令设置,并由CLRC XF指令来清除。XF还可通过LST指令来修改。复位时, XF被置为1 乘积移位方式位。PM决定PREG寄存器的值在送至CALU或数据存储器前在乘积移 位器中进行移位的方式。移位过程中,PREG寄存器的内容保持不变,其值被复 制到乘积移位器中进行移位。PM可由SPM或LST指令修改。复位时,PM位被清除。 PM=00,32位乘积不经移位被送至CALU或数据存储器;PM=01,REG的输出在送 至CALU或数据存储器前被左移1位,其最低有效位填0;PM=10,PREG的输出在 送至CLAU或数据存储器前被左移4位,其最低有效位填0;PM=11,PREG的输出 在送至CLAU或数据存储器前被右移6位,且进行符号扩展 保留位。读访问时返回1,写访问对该位没有影响
MPY
乘法器
第六章 汇编语法,寻址及指令系统
• 1.汇编语法 • 2.寻址方式 • 3.指令系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 1 立即寻址 • 2 绝对寻址 • 3 累加器寻址 • 4 直接寻址 • 5 间接寻址 • 6 存储器映象寄存器寻址 • 7 堆栈寻址
DSP技术讲义,2012 陈军波©生物医学工程学院
寻址方式




指令含义
立即寻址 主要用于初始化
LD #10,A
立即数10 A
将AL内容存入y所在的存储单 元 将A的内容作为地址读程序存储 器,并存入x存储单元
Smem
Xmem Ymem dmad pmad PA src dst
lk
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.1 立即寻址
指令中含有执行指令所需的操作数。操作数紧随 操作码存放在程序存储器中。
例如: LD #F180,A
;将立即数F180加载到A
程序存储器 立即数的数值形式: ① 短立即数。3、5、8、9位,单字指令; 操作码 ② 长立即数。16位,双字指令。
注意:在立即寻址的指令中,应在数值或符号前面加 一个“#”,表示是一个立即数,以区别于地址 。
DSP技术讲义,2012 陈军波©生物医学工程学院
返回
3.1.2 绝对寻址
指令中含有所要寻找的操作数的16位存储单元 地址。 16位地址表示形式: ① 地址标号,如:TABLE; ② 16位符号常量,如:89AB、1234。 特点:指令中包含一个固定的16位地址,能寻 例如: MVKD址所有数据存储空间,但运行速度慢, TABLE,*AR1;将DATA指定的数据存储单元 ;将数据存储器TABLE为地址 LD *(DATA),A 需要较大的存储空间。 中的数据送入累加器A中 的单元数据送入AR1寄存器
4. *(lk)寻址 使用一个指定数据空间的地址来确定数据存 储器中的一个地址。
返回
语法:允许所有使用单数据存储器(Smem)寻址 的指令去访问数据空间的任意单元,而 不改变DP的值,也不用对AR进行初始化。 例如,把地址为PN的数据单元中的数据装到累 加器A中。 LD *(PN), A
注意:*(1k)寻址的指令不能与循环指令(RPT,RPTZ)一起使用。 这种寻址可用于支持单数据存储器操作数的指令。
指定的数据存储单元中
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.2 绝对寻址
绝对寻址是利用16位地址来寻址操作数的存储 单元。由于绝对地址代码的位数为16位,所以绝对 地址寻址的指令至少应为2个字长。 绝对寻址有四种类型 : ① 数据存储器地址(dmad)寻址; ② 程序存储器地址(pmad)寻址; ③ 端口(PA)寻址;
绝对寻址 利用16位地址寻址存储单元 STL A,*(y) 累加器寻址 将累加器中的内容作为地址 READA x
直接寻址
间接寻址
利用数据页指针和堆栈指针 LD @x,A 寻址 利用辅助寄存器作为地址指 LD *AR1,A 针
(DP+x的低7位地址) A
((AR1)) A
存储器映像 快速寻址存储器映象寄存器 LDM ST1,B 寄存器寻址 堆栈寻址
当CPL=1时,
直接寻址 指 令
15~8 7 6~0
操作码
I=0
dmad
堆栈指针SP
16位堆栈指针SP
SP+dmad
16位数据 存储器地址 16位SP+dmad 高9位
DSP技术讲义,2012 陈军波©生物医学工程学院
dmad
低7位
3.1.4 直接寻址
DP地址的范围是从0~511(29-1),将存储器分成 512页。 7位dmad范围是从0~127,每页有128个可以访 问的单元。 以DP为基准的直接寻址是由DP值确定是512页中 的哪一页,由dmad确定是该页中的哪一个单元。 SP可以指向存储器中的任意一个地址。dmad可 以指向当前页中具体的单元,从而允许访问存储器 任意基地址中的连续的128个单元
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.4 直接寻址
所要寻址的数据存储器16位地址是由基地址和 偏移地址构成。
基地址: ① 数据页指针DP(9位); ② 堆栈指针SP。
当CPL=0时,数据存储器16位地址由DP和偏 移地址dmad构成; 当CPL=1时,数据存储器16位地址由SP加偏移 地址dmad构成。
DSP技术讲义,2012 陈军波©生物医学工程学院
3.1.3 累加器寻址
返回
将累加器的内容作为地址去访问程序存储单元, 即将累加器中的内容作为地址,用来对存放数据的程 序存储器寻址。 例如: 用途:用于完成程序存储空间与数据存储空间 READA Smem ;将A中的数据作为地址寻址程序 之间的数据传输。 注意:
据相加 00 0000
0180H
0001
1500 0200H 0500
1800 @y
0200
DSP技术讲义,2012 陈军波©生物医学工程学院
例2:数据存储器存储数据如图所示,利用堆栈指针SP直 接寻址,求堆栈中距栈顶两个数x,y的和。
DSP技术讲义,2012 陈军波©生物医学工程学院
2 程序存储器(pmad)寻址
• 使用程序存储器寻址的指令有:
FIRS Xmem, Ymem, pmad
MACD Smem, pmad, src
MACP Smem, pmad, src
MVDP Smem, pmad MVPD pmad, Smem • 程序存储器(pmad)寻址使用符号(符号地址) 或一个表示16位地址的立即数来给出程序空间的地 址。
DSP技术讲义,2012 陈军波©生物医学工程学院
3.端口(PA)寻址
用一个符号或一个数字来确定外部I/O端口的
地址。 例如,把一个数从端口为FIFO的I/O口复制到 AR5寄存器所指向的数据存储单元中。 PORTR FIFO, * AR5
I/O端口地址PA
DSP技术讲义,2012 陈军波©生物医学工程学院
DSP Technology
DSP汇编语言指令系统
3.1 寻址方式
当硬件执行指令时,寻找指令所指定的参与
运算的操作数的方法——寻址方式。 根据程序的要求采用不同的寻址方式,可以有 效地缩短程序的运行时间和提高代码执行效率。
DSP技术讲义,2012 陈军波©生物医学工程学院
第3章 TMS320C54x的数据寻址方式
④ *(1k)寻址。
DSP技术讲义,2012 陈军波©生物医学工程学院
1.数据存储器地址寻址 用于确定操作数存于数据存储单元的地址。 语法:使用一个程序标号或一个数字来指定数
据空间的一个地址。
例如,将数据存储器EXAM1地址单元中的数据复
制到AR5寄存器所指向的数据存储单元中。
MVKD EXAM1, * AR5
3 端口地址(PA)寻址
• 使用端口地址的指令有: PORTR PORTW PA, Smem Smem , PA
• 端口地址(PA)寻址使用一个符号(符号地址) 或一个表示16位地址的立即数来给出外部I/O口地 址。例如: PORTR FIFO ,*AR5;
DSP技术讲义,2012 陈军波©生物医学工程学院
数据存储器的 16位地址dmad值
DSP技术讲义,2012 陈军波©生物医学工程学院
1 数据存储器(dmad)寻址
• 使用数据存储器寻址的指令有: MVDK Smem, dmad MVKD dmad, Smem
MVDM dmad, MMR
MVMD MMR, dmad
• 数据存储器寻址使用符号(符号地址)或一个表 示16位地址的立即数来指明寻址的数据存储单元 的16位绝对地址。
例1:数据存储器存储数据如图所示,采用数据页指针
DP直接寻址,完成x,y单元的两个数据求和。
数据存储器 地址 数据
第 3 页
0180 0001 0180 0001 . . . 01FF X: 01FF y: 0200 . . . . . . 1000 1000 0500 . . .
结果 RSBX CPL DP RSBX CPL ;CPL复位 1500dma 0000 A 00 DP dma 0 0000 0011 111 1111 LD #3,DP 0 0000 0011 111 1111 LD #3,DP ;立即数3赋给DP000 0000 A @x A 1500 LD @x,A 00 0000 1000 0 1@x FF LD @x,A ;x单元的数据送入A1111 机器码0000 1000 111 1111 0 操作码 @x00 0000 0011 0 111 1 F F 00 0000 1001 0
DSP技术讲义,2012 陈军波©生物医学工程学院
地址形成过程:
当CPL=0时,
直接寻址 指 令
15ad
页指针DP (位于ST0中)
9位数据页指针DP
16位数据 存储器地址
9位数据页指针DP
dmad
高9位
DSP技术讲义,2012 陈军波©生物医学工程学院
低7位
地址形成过程:
特点:指令中含有一个固定的立即数,运行速度 较快,但需占用程序存储空间,并且数值不能改变。
立即数F180
用途:用于表示常数或对寄存器初始化。
DSP技术讲义,2012 陈军波©生物医学工程学院
支持立即数的指令
3位 立即数 LD 5位 立即数 LD 8位 立即数 FRAME LD RPT 9位 立即数 LD ADD ANDM LD ORM ST XOR 16位 立即数 ADDM BITF MAC RPT STM XORM AND CMPM OR RPTZ SUB
DSP技术讲义,2012 陈军波©生物医学工程学院
存储器中的数据,并将数据送 入Smem指定的数据存储单元。
3.1.4 直接寻址
相关文档
最新文档