南航自动化学院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和存储器指令)
南航自动化学院DSP技术应用实验
室
1. 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. 1. 累加器等指令举例累加器等指令举例
z 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;
南航自动化学院DSP技术应用实验
室
1. 1. 累加器等指令举例累加器等指令举例
z Example 10:ZALR 1 ; (DP = 32:1000h-
107Fh) 把内存地址为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,那
么ACC=7ffffh。
南航自动化学院DSP技术应用实验
室
2. 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技术应用实验
室
2. 2. 工作寄存器等指令举例工作寄存器等指令举例
z 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。
返回到第10页
南航自动化学院DSP技术应用实验
室
2. 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技术应用实验
室
3. 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
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示右移6位。
南航自动化学院DSP技术应用实验
室
4. 4. 转移指令举例转移指令举例
z Example1:BCND xxx, LEQ, C ;如果累加
器<=0并且进位C=1,那么程序就跳转到标
号xxx处执行;否则,程序顺序执行。根据
累加器ACC的内容产生的转移条件如下
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
所示。类似的指令还有:CC xxx。
z Example2:BANZ。第七页举例。
南航自动化学院DSP技术应用实验
室
EQ ACC = 0
NEQ ACC <>0
LT ACC < 0
LEQ ACC <=0
GT ACC > 0
GEQ ACC >=0
NC C = 0
C C = 1
NOV OV = 0
BIO BIO_ low
NTC TC = 0
TC TC = 1
UNC unconditionally
南航自动化学院DSP技术应用实验
室
5. 5. 控制指令举例控制指令举例
z Example1:BIT0h,15 ;(DP = 6)把内存地址=300h
单元内容的最低位(BIT0)送给TC。
z Example2:LDP #0h;使用立即数方式装载
数据页,也可以采用直接寻址和间接寻址方式装
载。
z Example3:PUSH ;把累加器的低16位压入堆
栈。
z Example4:SETC C;置进位C=1,也可以设置
以下的控制位为1或者为0,例如:CNF、INTM、
OVM、SXM、TC和XF。类似的指令还有:
CLRC。
南航自动化学院DSP技术应用实验
室
6. I/O6. I/O与存储器等指令举例与存储器等指令举例
z Example1:IN 7,1000h ;(DP=6)从地址为1000H
的外部端口读入数据,盛放在地址为307h的数
据单元内。类似的指令还有:OUT。
z Example2:SPLK #1111h,*+,AR4;把立即
数1111h送入当前寄存器指定的地址单元内,
之后工作寄存器内容加1,并且把当前工作寄
存器修改为AR4。
z Example3:TBLR 1 ;(DP=6)该指令为
查表指令,把累加器低16位指定的程序单元地
址内容送给数据地址为301h的内存单元内。
南航自动化学院DSP技术应用实验
室
二、汇编语言指令寻址格式
1、寻址方式
TMS320LF240X指令集包括三种基本的存储器寻址
方式,分别是立即寻址、直接寻址方式和间接寻址
方式。
¾立即寻址
(1)短立即寻址:RPT #5
NOP ;把NOP指令连续执行6次
(2)长立即寻址:ADD #17654,3;把长立即数
17654左移3位之后加到累加器
南航自动化学院DSP技术应用实验
室
¾直接寻址方式
使用直接寻址方式时,包括:
(1)设置数据页
例如:LDP #4 ; 指向第4个数据页
(2)指明偏移量
例如: LDP #4 ;指向第4个数据页
ADD 1 ; 把地址为204h的数据单元内
; 容加到累加器内
南航自动化学院DSP技术应用实验
室
¾间接寻址方式
TMS320LF240X中八个辅助寄存器(AR0-AR8)
提供了灵活而强大的间接寻址能力,在使用时,包
括:
(1)设置辅助寄存器指针(ARP)
例如: MAR *,AR1 ;指明当前寄存器为AR1
LAR AR1,#200H ;设定AR1的值
LDP #04H ;指明当前数据页码
LAR AR1,0 ;把地址为200H单元内容
;装载入AR1寄存器
南航自动化学院DSP技术应用实验
室
(2)指明间接寻址选项(*,*+,*-,*0+))
例如:MAR *,AR0 ;指定当前工作寄存器
MAR *+,AR1 ;把当前寄存器AR0的内容加
1,
;然后指向工作寄存器AR1
(3)指明下一个辅助寄存器(可选)
例如: MAR *,AR1
ADD *+,AR4 ;把当前工作寄存器AR1指
向的数据单元内容加至累加器,然后AR1内容加
1,并把工作寄存器定为AR4
DSP常用汇编语言指令简介
一、指令系统简介
1. 累加器等指令举例
1. 累加器等指令举例
1. 累加器等指令举例
2. 工作寄存器等指令举例
2. 工作寄存器等指令举例
2. 工作寄存器等指令举例
3. 乘积寄存器等指令举例
4. 转移指令举例
5. 控制指令举例
6. I/O与存储器等指令举例