3986.net
小网站 大容量 大智慧
当前位置:首页 >> 工学 >>

DSP 第五章指令


第五章 寻址方式和汇编指令
§5.1 寻址方式 寻址方式是指寻找指令中操作数地址的方式。 TMS320C2000汇编指令有3种存储器寻址方式: 立即寻址方式 直接寻址方式 间接寻址方式

一、立即寻址方式
在立即寻址方式中,指令字包含该指令要操作的常数。 在指令中常数前加“#”用于表示立即操作数。 C2000立即寻址方式分两种类型: 短立即寻址方式 长立即寻址方式。

短立即寻址方式: 指令的操作数为一个8位、9位或13 位的常数; 短立即寻址方式的指令是一个单指令字,该常数就包含 在这个单指令字中。
例1: RPT # k
RPT # 100 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0

;重复指令, k 为8位立即数

RPT指令操作码

操作数 =100

短立即寻址方式: 指令的操作数为一个8位、9位或13 位的常数; 短立即寻址方式的指令是一个单指令字,该常数就包含 在这个单指令字中。
例2: LDP # k LDP # 100
1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0

;装载DP指令,k 为9位立即数

LDP指令操作码

操作数 =100

短立即寻址方式: 指令的操作数为一个8位、9位或13 位的常数; 短立即寻址方式的指令是一个单指令字,该常数就包含 在这个单指令字中。

例3: MPY # k MPY # 0031h
1 1 0 0 0 0

;乘法指令, k 为13位立即数的操作数

0

0

0 0

1

1

0

0

0

1

MPY指令操作码

操作数 =0031h

长立即寻址方式: 指令的操作数为一个16位的常数 指令需两个指令字,该常数为第二指令字。 这个16位的常数可以作为一个绝对值,也可以作为二 进制的补码数。
例 ADD # lk [, shift] ADD #16384, 2
第一个 指令字 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0

; lk 为16位立即数的操作数

ADD指令操作码 第二个 指令字 0 1 0 0 0 0 0 0 0 0 0 0

移位数 = 2 0 0 0 0

操作数 = 16384 = 4000h

二、直接寻址方式
访问数据存储器的方式:直接和间接寻址方式。 直接寻址方式将指令中的7位操作数与数据存储器页面指针 (DP)的9位连接在一起,形成个16位数据存储器地址。 直接寻址方式可访问64k数据存储器的512个数据页面和每 个数据页中的128个字单元。 偏移量是指令中的操作数,是页面中的某个地址单元。 偏移量是7位的立即数,作为64K数据存储器地址的低7位, DP值作为数据存储器地址的高9位,用来确定当前数据页。



直接寻址方式的数据存储器地址产生
状态寄存器ST0 D8 DP(9LSBs) D0 D15 8MSBs 指令操作码 指令寄存器 D8 D7 D6 0 7LSBs D0

D15 DP(9MSBs)

D7 D6 偏移量 (7LSBs)

D0

16位数据存储器地址

使用直接寻址方式访问数据存储器的步骤: 1)设置数据页面,将当前数据页面(0-511)装入DP: LDP #k 2)设置偏移量, 给出7位偏移量作为指令的一个操作数。 ADD 5Dh
应注意 : 1. 在程序开始时必须初始化DP。 2. 如果程序中的所有指令均访问同一个数据页,只需在程序的 前面装入DP,而不必在采用直接寻址方式的每个指令之前设 置数据页。若访问新的数据页,需重新装新的DP值。 3. 用直接寻址方式的指令其操作数不加前缀“#”

例1: LDP ADD

#4 9h,5
指令寄存器 D0 D15 D8 D7 D6 0 D0

状态寄存器ST0 D8

0 0 0 0 0 0 1 0 0

0 0 1 0 0 1 0 1 移5位ADD指令操作码

0 0 0 1 0 0 1

D15

D7 D6

D0

0 0 0 0 0 0 1 0 0

0 0 0 1 0 0 1

16位数据存储器地址:0209h

例2: LDP ADDC
状态寄存器ST0 D8

#500 6h

; 500 = 1F4h

指令寄存器 D0 D15 D8 D7 D6 0 D0

1 1 1 1 1 0 1 0 0

0 1 1 0 0 0 0 0 移5位ADD指令操作码

0 0 0 0 1 1 0

D15

D7 D6

D0

1 1 1 1 1 0 1 0 0

0 0 0 0 1 1 0

16位数据存储器地址:0FA06h

三、间接寻址方式
通过一个16位的辅助寄存器间接访问数据存储器。 利用8个16位的辅助寄存器(AR0—AR7)可提供灵活多变且 功能强大的间接寻址方式。 辅助寄存器的内容作为一个16位地址可访问64K数据存储 器中的任意单元。 除了具有立即操作数或没有操作数的指令外,所有的指令 都能使用间接寻址方式。 间接寻址方式不要考虑页地址DP

1. 辅助寄存器的选择
装载ARP来选择辅助寄存器: LST指令 MAR指令 支持间接寻址方式的任意指令 由ARP指定的辅助寄存器称为当前辅助寄存器或当前AR。 在使用间接寻址方式的指令中,当前辅助寄存器的内容为数 据存储器的访问地址。 。

2. 间接寻址的选择
使用当前辅助寄存器进行间接寻址之后,辅助寄存器算术 单元(ARAU)可以对当前辅助寄存器的内容进行修改。 C2000提供了4种修改方法: 无增量或减量 加1或减1 加或减一个变址量 按逆向进位方式加或逆向借位方式减一个变址量

2. 间接寻址的选择
指令使用当前辅助寄存器内容作为数 使用当前辅助寄存器进行间接寻址之后,辅助寄存器算术 据存储器地址。 单元(ARAU)可以对当前辅助寄存器的内容进行修改。

C2000提供了4种修改方法: 无增量或减量 加1或减1 加或减一个变址量

指令执行完成后当前辅助寄存器的内 容保持不变。 例: LT * ;用当前AR所指的数据存
储器地址内容装载TREG

按逆向进位方式加或逆向借位方式减一个变址量

2. 间接寻址的选择
指令使用当前辅助寄存器内容作为数 使用当前辅助寄存器进行间接寻址之后,辅助寄存器算术 据存储器地址,然后将当前辅助寄存 单元(ARAU)可以对当前辅助寄存器的内容进行修改。

C2000提供了4种修改方法: 无增量或减量 加1或减1 加或减一个变址量

器内容加1或减1。 例:
LT *+ ;用当前AR所指的数据存 储器地址内容装载TREG, 然后将当前AR内容加1 。 LT *- ;用当前AR所指的数据存 储器地址内容装载TREG,

按逆向进位方式加或逆向借位方式减一个变址量 然后将当前AR内容减1。

2. 间接寻址的选择
指令使用当前AR的内容作为数据有储器 使用当前辅助寄存器进行间接寻址之后,辅助寄存器算术 地址,然后向AR的内容加上或减去AR0 单元(ARAU)可以对当前辅助寄存器的内容进行修改。 的内容。 AR0中的值即是这个变址量。

C2000提供了4种修改方法: 例: 无增量或减量 加1或减1 加或减一个变址量
LT *0+ ;用当前AR所指的数据存 储器地址内容装载TREG, 然后向当前AR内容加上 AR0内容 。 LT *0- ;用当前AR所指的数据存 然后将当前AR内容减1。

储器地址内容装载TREG, 按逆向进位方式加或逆向借位方式减一个变址量

2. 间接寻址的选择
指令使用当前AR内容作为数据存储器地址,然后将当前AR内容与AR0 中的内容按逆向进位或逆向借位方式相加或相减,结果送到当前辅助寄 使用当前辅助寄存器进行间接寻址之后,辅助寄存器算术 存器中。AR0中的值即是这个变址量。 单元(ARAU)可以对当前辅助寄存器的内容进行修改。

例:

C2000提供了4种修改方法: LT *BR0+ ;用当前AR所指的数据存储器地址内容装载TREG, 然
后向当前AR内容加上 AR0内容 , 加法采用逆向进位方式。 无增量或减量 后将当前AR内容减1。减法采用逆向借位方式。 加1或减1 LT *BR0- ;用当前AR所指的数据存储器地址内容装载TREG,然 AR TREG

加或减一个变址量 按逆向进位方式加或逆向借位方式减一个变址量

3.下次使用的辅助寄存器
许多间接寻址的指令除了可以改变当前AR的内容外,还 可以指定下次使用的AR 。 当这些指令执行完毕时,指定的AR成为下一条指令的当 前AR ,即为下次使用的AR。 指定下次使用的AR的指令实际上是将一个0-7的值装入 ARP中,当前的ARP值则被复制到ARB中

例: MAR *, AR1 LT :将1装入ARP,使AR1成为下次使用的AR。

*+, AR2 ;将当前辅助寄存器AR1的内容作为地址,把该地址 单元的内存装入TREG;然后将ARl的内容加1;再使 AR2成为下次使用的辅助寄存器

MPY *

;将AR2的内容作为地址,把该地址单元的内容与 TREG的内容相乘,乘积送入乘积寄存器PREG, 下次使用的辅助寄存器仍为AR2

4. 修改辅助寄存器的方法
使用专用指令修改辅助寄存器的内容。
LAR指令:直接将操作数指定的内容装入AR。 ADRK指令:将当前AR值加一个立即数。 SBRK 令:将当前AR值减‘个立即数。 MAR指令:将当前AR值加、减1或加、减一个变址量。



利用任何一条支持间接寻址的指令都能修改辅助寄存器 的内容

§ 5.2 汇编指令
TMS320C2000系列的汇编指令支持各种信号处理运算。 C2000指令集与C2X指令集兼容,为C2x编写的代码经重 新汇编可在C2000上运行。 C5x的指令包含了C2000的指令,C2000的指令也能用于 C5X芯片。 TMS320C2000系列的汇编指令有80多条。

一、汇编指令的表示法
用助记符表示 组成: 操作码 [ 操作数 [,操作数 ] ]



LAR 操作码

AR1, #08h 操作数

二、分类
C2000指令按功能叫分为6大类。 (1)累加器、算术和逻辑运算指令(26条) (2)辅助寄存器指令( 6条); (3)TREG、PREG 和乘法指令( 20条): (4)转移指令(12条); (5)控制指令(15条); (6)I/O和存储器指令(8条)。 见P89 -92

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk[,shift ]
例: 无操作数指令 ABS

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk[,shift ]
shift 例: ADD 1, 1 左移0-15位直接寻址 其中: dma 数据存储器地址的低 7位(页内地址) 左移0-15位(缺省为0)

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk[,shift ]
左移16位直接寻址 其中: dma 数据存储器地址的低 7位(页内地址) 16 例: ADD 13h, 16 左移16位

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk[,shift ]
shift ARn 左移0-15位间接寻址 其中: ind 间接寻址符号,有七种 选择:
* ,*+,*-,*0+,*0*BR0+ *BR0-

左移0-15位 n为数值0-7,ARn指定 下次的辅助寄存器。

例: ADD *+, 2, AR0

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk[,shift ]
16 ARn 例: 左移16位间接寻址 其中: ind 间接寻址符号,有七种 选择:
* ,*+,*-,*0+,*0*BR0+ *BR0-

左移16位 n为数值0-7,ARn指定 下次的辅助寄存器。 ADD *-, 16, AR1

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk [,shift ]
短立即寻址 其中: k # 8,9,13位短立即数 立即寻址方式前缀 #8

例: ADD

三、指令句法描述
C2000指令有6种典型的格式 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 指令助记符 dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk [,shift ]
左移0-15位长立即寻址 其中: lk # shift 例: 16位长立即数 立即寻址方式前缀 左移0-15位 ADD #1111h, 2

注意:
指令助记符是指令中的关键字,表示本条指令的操作类 型,不能缺省。 以上7种格式基本包含了所有指令的类型,但不是所有 指令都具备这7种格式。 指令助记符与操作数之间要用空格分开,各操作数之间 要用“,”号分开,操作数可缺省。

例1:带移位加法ADD
ADD ADD ADD ADD ADD ADD dma[,shift] dma, 16 ind [,shift [,ARn]] ind [,16[,ARn]] #k #lk [,shift ]

例2:带进位加法ADDC
ADDC ADDC dma ind [,ARn]

四、指令集
指令说明的信息 句法 功能 操作数 执行过程与结果 受影响的状态位 该指令所占的字数 执行该指令所需的周期数(时间) 指令举例


推荐相关:

DSP 芯片的特点: 1.采用哈佛结构实现内部总线;2.采用流水线操作实现指令操作; ...在基本代码产生工具的基础上增加了调试和实时分析的功能 第五章 (1)从 C ...


指令语法说明 dma 数据存储器地址的 7 位最低有效位,它与数据 页面指针(DP)...dsp指令 10页 1下载券 dsp 第2章 指令系统 暂无评价 131页 1下载券 dsp指令...


DSP指令DSP指令表隐藏>> 分享到: X 分享到: 使用一键分享,轻松赚取财富值, 了解详情 嵌入播放器: 普通尺寸(450*500pix) 较大尺寸(630*500pix) 预览复...


大部分 DSP 芯片可在一个指令周 期内完成 MAC 操作; (7) FFT 执行时间:...第五章 1.C55x 的片内外设可以分为哪几类?这些片上外设可以通过什么工具完成...


(0234H)=10; ACC=14H 五.实验步骤及参考程序 .include “f2407.h” .def...DSP课件 第8讲_第3章寻址... 27页 免费 寻址方式与基本指令实验 7页 免费...


五. 累加器算术、逻辑命令1.LACC 左移后装载累加器 LACC dma[, shift] ...DSP测试题4答案 2页 1下载券 第4章DSP指令集 547页 1下载券 CCSV4.2环境...


DSP实验:常用指令及数据存储实验_工学_高等教育_教育专区。实验一 DSP 实验一:...查看存储器结果:View--Memory 五、思考题 1、系统时钟频率为 10MHz,已知 BANZ...


指令系统的流水线操作、专用的硬件乘法器、特殊的 DSP 指令、快速的指令周期、...DSP试题及答案1 5页 2下载券 第3章__TMS320C54x的数据... 42页 免费 ...


一致性 DSP 芯片:两种或更多的 DSP 芯片,其指令集、 机器代码及引脚结构相互...答: rint0: B _serial0_receive nop nop ;串行端口 0 接收中断 第五章 ...


第4章 TMS320C54xDSP寻址方... 89页 1财富值如要投诉违规内容,请到百度文库...实验二 基本指令及寻址方式 DSP 的最大优势在于数据处理, 所以 DSP 数据处理...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com