当前位置:
文档之家› 第五章 DSP的汇编指令..
第五章 DSP的汇编指令..
令执行的条件:
TCx(测试/控制标志为1) !TCx(测试/控制标志为0)
TC1&TC2 TC1&!TC2 TC1|TC2 TC1|!TC2 TC1^TC2 TC1^!TC2
!TC1&TC2 !TC1&!TC2 !TC1|TC2 !TC1|!TC2 !TC1^TC2 !TC1^!TC2
第五章 TMS320C55x系列DSP的汇编指令
4、双16比特算术指令: [(1)语法、(2)操作数、(3)状态位] 在D单元中利用其ALU的双16比特模式,同时执行(并行)两个16
比特算术运算,包括加-减、减-加、两个加和两个减运算。
例:
▪ M40=0时,D单元按32位运算模式,因此累加器溢出、进位、符号扩
展和移位操作都以第31比特为准。
▪ M40=1时,D单元按40位运算模式,因此累加器溢出,进位,符号扩
展和移位操作都以第39比特为准。
BCLR M40 ; Clear M40
BSET M40 ; Set M40
第五章 TMS320C55x系列DSP的汇编指令
第五章 TMS320C55x系列DSP的汇编指令
一、算术运算指令 用于完成加减乘除等运算,按照功能可分成以下几类:
▪ 加法指令 ▪ 减法指令:减法,条件减法,条件加/减 ▪ 乘法指令:乘法,乘加,乘减,双乘加/减 ▪ 双16比特算术指令 ▪ 比较运算指令:比较并求极值,最大/最小值,存储单元比较,寄存器比较 ▪ 移位指令:条件移位、带符号的移位。 ▪ 寄存器修改:辅助寄存器修改、堆栈指针SP修改 ▪ 隐含的并行指令 ▪ 专用指令:绝对值、归一化、有限冲激响应滤波FIR、最小均方LMS等
✓ M40=0时: 溢出位在第31位检测
✓ M40=1时: 溢出位在第39位检测
BCLR ACOV1 ;清零 BSET ACOV1 ;置位
第五章 TMS320C55x系列DSP的汇编指令
3、兼容模式(C54CM)
▪ C54CM=0:CPU工作于增强模式,只支持C55x的指令, ▪ C54CM=1: CPU工作于兼容模式,既支持C54x又支持C55x指令。 ✓ BCLR C54CM ; Clear C54CM (happens at run time) ✓ C54CM_off ; Tell assembler C54CM = 0 ✓ BSET C54CM ; Set C54CM (happens at run time) ✓ C54CM_on ; Tell the assembler C54CM = 1
*ARx<=#0
*ARx>#0
ACx<#0 ACx>=#0
*ARx<#0 *ARx>=#0
第五章 TMS320C55x系列DSP的汇编指令
(4)临时寄存器的值(4个临时寄存器T0~T3)
Tx==#0
Tx!=#0 Tx<#0
Tx<=#0
Tx>#0
Tx>=#0
(5) 测试/控制标志
两个测/控制标志的状态以及它们的逻辑组合可以作为指
第五章 TMS320C55x系列DSP的汇编指令
可以作为指令执行的条件有:
(1)累加器的值
ACx==#0
ACx!=#0
ACx<=#0
ACx>#0
(2)溢出标志和进位标志
overflow(ACx) !overflow(ACx)
CARRY
!CARRY
(3)辅助寄存器的值
*ARx==#0
*ARx!=#0
第五章 TMS320C55x系列DSP的汇编指令
4、进位标志(CARRY) CARRY表示是否有进位或借位发生
▪ CARRY=0时,没有借位或进位发生。
▪ CARRY=1时,有借位或进位发生。
▪ 位操作指令改变CARRY
✓ BCLR CARRY ; Clear CARRY ✓ BSET CARRY ; Set CARRY
5.3 C55x指令的并行执行 1、并行指令的分类
C55只支持有限的指令并行执行,能支持三种类型的指令并行。 (1) 隐含的或内置的单指令并行
一条指令同时执行两个不同的操作,用“::”来分隔指令的两 个部分。
MPY *AR0, *CDP, AC0 :: MPY *AR1, *CDP, AC1
这类指令是利用双MAC来实现的,C55x中,这视为一条单指令。
第五章 TMS320C55x系列DSP的汇编指令
1、加法指令 在D单元或A单元中执行加法运算。
▪ 当有一个目的操作数为累加器ACx时,在D-ALU中执行。 ▪ 当目的操作数为辅助或临时寄存器时,在A-ALU中执行 ▪ 当目的操作数为Smen时,在D-ALU中执行 ▪ 当移位位数不是立即数16时(移位指令),在D单元的移位器中执 行。 ▪(1)语法 ▪(2)操作数 ▪(3)状态位 举例:ADD uns(*AR3),CARRY,AC1,AC0
第五章 TMS320C55x系列DSP的汇编指令
1、高速数字信号处理中常采用汇编语言编程。 2、汇编语言中的两种指令集 (1) 助记符指令集:有助于记忆的符号来表示指令。 (2) 代数指令集:类似于代数表达式,运算关系清楚明了。 注意:DSP的软件开发工具只支持单一的指令形式,不支持助记
符指令和代数指令的混合形式。 3、术语、符号和缩写见P93的表5-1 4、运算符见表5-2
第五章 TMS320C55x系列DSP的汇编指令
2、减法指令 ▪ 常规减法:在D单元或A单元执行减法操作。 ▪ 条件减法:在D单元中执行,先执行减法,然后根据结果进行移位。 ▪ 条件加/减:在D单元根据TC1或TC2的状态执行加/减运算。 ▪(1)语法;(2)操作数;(3)状态位
例1(常规减法):
; Clear FRCT ; Set FRCT
第五章 TMS320C55x系列DSP的汇编指令
6、中断模式(INTM)
▪ INTM=0:允许所有可屏蔽中断 ▪ INTM=1:关闭所有可屏蔽中断
✓ BCLR INTM ✓ BSET INTM
; Clear INTM ; Set INTM
第五章 TMS320C55x系列DSP的汇编指令
第五章 TMS320C55xDSP的汇编指令
5.1状态比特和 执行条件
一条指令的执 行可能会受到某些 状态位的影响,也 可能会改变某些状 态位的值,这些状 态位都在状态寄存 器。
第五章 TMS320C55x DSP的汇编指令
1、40比特运算模式(M40)
用于控制D单元的运行模式,会影响累加器溢出、进位标志等。
寻址,不满足规则3,所以不能并行。
在实际编程时,只要指令满足这三条基本规则,即可写成并行 方式,然后进行编译。如果编译有错,则可参照pp.77-78的8条 详细规则进行检测。
第五章 TMS320C55x系列DSP的汇编指令
5.4 TMS320C55x DSP的汇编指令
TMS320C55x DSP的汇编指令按操作分为以下6类
;用户自定义并行
第五章 TMS320C55x系列DSP的汇编指令
2、指令并行的规则 只有满足以下三条基本规则,并行指令才可以使用,若非
法使用并行指令,可能会导致不可预测的执行结果。 规则1:指令长度要少于6个字节 受I单元指令译码器的限制,只有两条指令长度不超过6字节的,
才可以作为并行处理。[IBQ大小为64字节/译码器大小为6字节] 规则2:没有硬件资源冲突 如果两条指令不存在操作数、总线、内部交叉单元和寄存器
7 、测试/控制标志(TCx)
▪ 主要用于保存某些测试指令的结果; ▪ 可以作为指令执行的条件; ▪ 举例:CMP AC1 = = T1, TC1;;如果AC1 = T1,那么TC1=1。
BCLR TC1 ; Clear TC1 BSET TC1 ; Set TC1 BCLR TC2 ; Clear TC2 BSET TC2 ; Set TC2
3、乘法指令 [(1)语法、(2)操作数、(3)状态位]
▪ 常规乘法(MPY):在D单元的一个MAC中执行乘法运算。
▪ 乘加和乘减运算(MAC/MAS):在D单元的一个MAC中执行乘法,然 后执行加法或减法运算。
▪ 双乘加/减(Dual-MAC/S): 利用D单元的两个MAC同时执行两个乘法或
乘加/乘减运算。 例1(常规乘法)
▪ 算术运算指令 ▪ 比特操作指令 ▪ 扩展辅助寄存器操作指令 ▪ 逻辑操作指令 ▪ MOVE操作指令 ▪ 程序控制指令
一条指令的属性包括: ▪ 语法(Syntax) ▪ 执行的操作 ▪ 操作数 ▪ 相关的状态位 ▪ 是否有并行使能位 ▪ 长度(Size) ▪ 执行周期(Cycles) ▪ 在流水线(Pipeline)上的执行阶段 ▪ 在哪个功能单元执行(Executed) ▪ 是否可以重复执行等
之间的冲突,则可以并行。
第五章 TMS320C55x系列DSP的汇编指令
规则3:并行指令含有两个数据存储器访问时,必须使用间 接寻址模式。
以上三条规则是基本规则,缺一不可。
例如:
MOV *AR,AC1
;2个字节
||ADD @var,AR2 ;3个字节
两条指令访问两个数据存储单元,第二条指令没有使用间接
第五章 TMS320C55x系列DSP的汇编指令
(2) 用户自定义的双指令的并行
这两条指令的并行是通过用户或C编译器定义的。两条指令 同时执行两个操作,用并行符“||”区分并行执行的两条指令。 例:
MPYM *AR1+, *CDP, AC1 ;D单元的一个MAC来完成
||XOR AR2,T1
;A单元的ALU来完成
第五章 TMS320C55x系列DSP的汇编指令
例如: -----------------------------------------------------------------------------------| ADD uns(*AR3),CARRY,AC1,AC0 | No | 3 | 1 | X | D - ALU | ------------------------------------------------------------------------------------