[工学]第5章C54x的汇编语言程序设计PPT课件

合集下载

第5章 汇编语言程序设计20PPT课件

第5章 汇编语言程序设计20PPT课件
第5章 汇编语言程序设计
第5章 汇编语言程序设计
5.1 汇编语言的基本概念
汇编语言是一种采用助记符表示的程序设计语言, 即用助记符来表示指令的操作码和操作数,用标 号或符号代表地址、常量或变量。
汇编语言编写的程序能够直接利用硬件系统的特 性直接对位、字节、字寄存器或存储单元、I/O端 口进行处理,同时也能直接使用CPU指令系统提供 的各种寻址方式。
(小于)、GT(大于)、LE(小于等于)、GE (大于等于) (4)分析运算符:SEG、OFFSET、TYPE、SIZE和 LENGTH (5)合成运算符:PTR、THIS、SHORT
5.3 伪指令语句
5.3.1 数据定义伪指令 5.3.2 符号定义伪指令 5.3.3 段定义伪指令 5.3.4 模块定义与连接伪指令 5.3.5 处理器选择伪指令
汇编程序时最早也是最成熟的一种系统软件。 汇编程序的功能如下:
用汇编语言编 写的源程序
汇编程序
目标程序
5.2汇编语言源程序的格式
5.2.1 分段结构 5.2.2 汇编语言语句的类型和格式
5.2.1 分段结构
汇编语言源程序的结构是分段结构形式,一个汇 编语言源程序由若干段(SEGMENT)组成,每个段 以SEGMENT语句开始,以ENDS语句结束。整个源 程序的结尾是END语句。
5.3.1 数据定义伪指令
数据定义伪指令的用途是定义一个变量的类型, 给操作数赋值,或者仅给变量分配存储单元而不 赋予特定的值
数据定义伪指令的一般格式为:
[变量名] 作数……]
伪指令定义符
操作数[,操
数据定义伪指令定义符后面的操作数可以是 常数、表达式或字符串,但每项操作数的值不能 超过由伪指令定义符所定义的数据类型限定的范 围。

DSP软件开发-PPT课件

DSP软件开发-PPT课件
.copy/.include
.def
.global
.ref
将TMS320各寄存器名定义为全局 符号,这样就可以直接引用寄存器 (符号)
.set伪指令附一常数值给某个符号, Shift .set 5
也可以将符号常数赋给寄存器
ld #shift,A
AuxR1 .set AR1
MVMM AuxR1,sp
从其他文件读取源代码语句。
"cosine",512 "fft_data",1024
d_input: .usect
"d_input", 1024
fft_out: .usect
"fft_out", 512
STACK
.usect
"STACK",10
.bss
d_twid_idx,1
.bss
d_data_idx,1
.bss
d_grps_cnt,1
第一列开始 每区必须用一个或多个空格分开Tab字符键与空
格等效 程序中可以有注释,注释开始在第一列时,前面需标
上星号或分号(*或;),但在其他列开始的注释前面 只能标上分号
5
标号区 标号分大小写,且第一字符不能是数字,后面可以带
冒号(:),但冒号并不处理为标号名的一部分。标号实 际代表了该代码行在程序或数据段中的地址
.bss : > SPRAM
PAGE 1
sine : align(1024){ } > DARAM PAGE 1
15
.text 将代码或数据放入.text段中
.data 将数据放入.data段中
.sect 将代码或数据放入指定的段中。

汇编语言程序设计ppt课件

汇编语言程序设计ppt课件

3.用注释行说明程序,便于阅读和修改调试和修改。
1
9
常用程序结构: 顺序程序、循环程序、分支程序、查表程序、子程
2. 顺序与循环程序设计
❖5.2.1 顺序程序设计(又称简单程序) 既无分支,又无循环,按照顺序执行 可完成一定的基本功能,是编写复杂程序的 基础
10
例1:将一个字节内的两个BCD码拆开并变成ASCII码, 存入两个RAM单元。BCD码放在内RAM的20H, 转换后高半字节放到21H,低字节放22H。
ROM
20H BCDH BCDL
SWAP A ORL A, #30H MOV 21H, A SJMP $
;BCDH数送A的低4位 21H 0011 BCDH ;完成转换 @R0 22H 000101 B0C0D0L0
;存数
END
12
回目录 上页 下页
5.2.2 循环程序
包含多次重复执行的程序段,循环结构使程序紧凑。
11
回目录 上页 下页
程序:
ORG 1000H
MOV R0, #22H ;R0 22H MOV @R0,#0 ; 22H 0 MOV A, 20H ;两个BCD数送A
A
B0C0D01H01 B0BCC0DD0LH0
XCHD A, @R0 ;BCDL数送22H ORL 22H, #30H ;完成转换
表示程序结构和程序功能
美国国家标准化协会ANSI(American National
Standard Institute)设定了一些常用的流程图符号如图所示:
开始
起止框

流程线
输入输出框 判断框
处理框
连接点 图:常用流程图符号
Y
?

第五章--TMS320C54x-DSP的汇编语言程序设计.

第五章--TMS320C54x-DSP的汇编语言程序设计.
否则汇编程序会致使出错。
5.1 汇编语言程序编写方法
2. 操作码项 在语句中一定有的是操作码项,用来说明所有进行的操作。 操作项是一个操作码的助记符,助记符包含指令性语句、伪
指令和宏命令。 对于指令性语句,一般用大写,汇编程序将其翻译为机器语
言指令。对于伪指令,汇编程序将根据其所要求的功能进 行处理,可以形成常数和变量,当用它控制汇编和链接过 程时,可以不占存储空间。对于宏命令,则将根据其定义 展开。伪指令和宏命令均以西文句号(.)开始,且为小写。
第五章 320C54x 的汇编语言程序设计
第五章 320C54x 的汇编语言程序设计 5.1汇编语言程序编写方法 5.2汇编语言的指令系统 5.3320C54x 汇编语言的编辑、汇编与链接过程 5.4汇编器 5.5链接器
第五章 320C54x 的汇编语言程序设计
的软件开发一般有以下几种方式: (1)直接编写汇编语言源程序; (2)编写C语言程序; (3)混合编程(既有C代码,又含汇编代码)。
5.1 汇编语言程序编写方法
表中运算符从上到下对应优先级由高到低。
表达式的执行顺序是先执行优先级高的运算后执行
优先级低的运算,圆括号内的表达式最先运算。
表达式溢出
在汇编过程中执行算术运算后,汇编器将检查溢出
状态,表达式值的有效范围为-32768~32767,超出此范围
就会改变溢出状态,出现溢出时,汇编器会发出值被截断
5.1 汇编语言程序编写方法
一、汇编语言源程序格式 汇编语言源程序中的每个语句可以由四项组成: [名字][:] 操作码 [操作数1,操作数2,…] [;注释]
其中,[ ]为可选项。 1. 名字项 名字项可以是标号或变量,用来表示本语句的符号地址,只有

DSP技术 第5章 TMS320C54x DSP的汇编语言程序设计

DSP技术 第5章 TMS320C54x DSP的汇编语言程序设计
如1682416824表达式表达式2018年1月25日dsp原理及应用10序号序号运算操作运算操作求值顺序求值顺序11取正取负按位求补逻辑负取正取负按位求补逻辑负乘法除法求模乘法除法求模加法减法加法减法指数指数从左到右从左到右55左移右移左移右移小于小于等于小于小于等于大于大于等于大于大于等于不等于等于不等于等于按位与运算按位与运算1010按位异或运算按位异或运算1111按位或运算按位或运算表中运算符的优先级是从上到下同级是从左到右
A B T FRCT
指令执行前 00 0000 1000H 00 0000 0000H
0400H 1
A B T FRCT
指令执行后 00 0000 1000H 00 001A 3800H 0400H 1
【例13】 MACR *AR3+,*AR4+,A,B
A B T FRCT AR3 AR4 数据存储器 0100H 0200H
表5.8 乘加和乘减指令
【例11】 MAC #345H,A,B
A B T FRCT
指令执行前 00 0000 1000H 00 0000 0000H 0400H 0
A B T FRCT
指令执行后 00 0000 1000H 00 000D 2400H 0400H 0
【例12】 MAC #345H,A,B
表达式可以是常数、符号,或者是由算术运算符 分开的一系列常数和符号。
有效表达式的值: -32 768~32 767 影响表达式的主要因素:
① 圆括号( )。圆括号内的表达式最先计算; ② 优不先能级用。大’括C号5{4x}汇或编中器括使号用[ ]代与替C语圆言括相号似( 的)。优
先级,优先级高的先计算;
0101H 0201H

汇编语言课件第05章

汇编语言课件第05章

11/37
第五章 汇编语言顺序程序设计
乘法指令只影响CF和 , 乘法指令只影响 和OF,其它条件码无定义 。 1)MUL: 若乘积的高一半为 ,则CF=OF=0, ) : 若乘积的高一半为0 , 否则, 否则,CF=OF=1。 。 2)IMUL:若乘积的高一半是低一半的符号位的扩展, 2)IMUL:若乘积的高一半是低一半的符号位的扩展, 则,CF=OF=0,否则,CF=OF=1。 ,否则, 。
13/37
第五章 汇编语言顺序程序设计
一、算术指令(5类) 算术指令( 类 1. 加法指令(ADD,ADC,INC) 加法指令( , , ) 2. 减法指令(SUB,SBB,DEC,NEG ,CMP ) 减法指令( , , , 3.乘法指令 MUL,IMUL) 3.乘法指令(MUL,IMUL) 乘法指令( 4.除法指令(DIV,IDIV) 除法指令( 除法指令 , ) 5.十进制调整指令(DAA,DAS等) 十进制调整指令( 十进制调整指令 , 等
12/37
第五章 汇编语言顺序程序设计
如何区分MUL和IMUL 和 如何区分 (1111,1111B)×(1111,1111B) , ) , ) 看作无数号数,上式为: 看作无数号数,上式为:FFH×FFH=FFE01H × 看作带符号数,上式为:(-1) 看作带符号数,上式为:( )×(-1)=1 :( ) 选用MUL或IMUL应根据实际情况而定。 或 应根据实际情况而定。 选用 应根据实际情况而定
21/37
第五章 汇编语言顺序程序设计
本章内容分三节: 本章内容分三节: 5.1 算术指令 5.2 逻辑指令 5.3 顺序程序举例
22/37
第五章 汇编语言顺序程序设计
二、逻辑指令 逻辑运算指令( 1. 逻辑运算指令(5个) 移位指令( 2. 移位指令(8个)

15和16:DSP原理及应用——第5章TMS320C54x的汇编语言程序设计第116次课讲稿

15和16:DSP原理及应用——第5章TMS320C54x的汇编语言程序设计第116次课讲稿

S13.2
-8192 ≤x ≤8191.75
Q1
S14.1
《DSP原理及应用Q》0 成都理工大学工S15程.0技T术M 学院 石坚
-16384 ≤x ≤16383.5 -32768 ≤x ≤328767 8
第5章 TMS3250.7C5小4x数的运汇算编程语序言程序设计
定点DSP的小数表示法 基于2的补码形式; 数的定标有Q法和S法; C54X为16位:1位符号位,Q个小数位和15-Q个整数位。
1*32768/10,-2*32768/10
《DSP原理及应用》 成都理工大学工程技T术M 学院 石坚
12
12
start: done:
第5章 TMS.3te2x0tC54x的汇编语言程序设计 SSBX FRCT STM #a, AR1 RPT #7 MVPD table, *AR1+ STM #a, AR3 STM #x, AR4 RPTZ A, #3 MAC *AR3+, *AR4+, A STH A, y B done .end 只能最多用到AR5, 教材代码有误!!!
说明:重复操作期间,除RS外所有中断被禁止,直到重 复循环完成;CPU响应HOLD信号。
《DSP原理及应用》 成都理工大学工程技T术M 学院 石坚
2
2
第5章 单TM指S3令20重C5复4x操的作汇程编序语示言例程:序设计
【例5.5.1】对数组进行初始化,使x[8]={0,0,0,0,0,0,0,0}。
将尾数按指数值进行左
移(指数为负)或右移 指数相加 (指数为正)
暂存乘积指数
浮点运算举例
编写浮点运算程序,完 成x1*x2=0.4*(-0.9)。

精品PPT课件--第5章汇编语言程序设计

精品PPT课件--第5章汇编语言程序设计
指示性语句的格式为:
名字 伪指令 操作数1,操作数2,…,操作数n ;注释
注:各部分之间至少要用一个空格作为分隔符。
指示性语句由汇编程序执行。它指出汇编程序应如何对源程序进行汇编, 如何定义变量、分配存储单元以及指示程序开始和结束等。指示性语句无 机器码指令与其相对应。
指示性语句汇编时不生成机器码。
显然,第二种写法要比第一种写法要好。
2021/1/20
23
5.3 伪操作命令
由汇编程序执行的指令,它本身不被汇编成机器指令。 常用的伪指令有:
• 数据定义伪指令 • 符号定义伪指令 • 段定义和段寄存器指定伪指令 • 过程定义伪指令 • 结束伪指令
2021/1/20
24
5.3.2 数据定义伪指令
➢ 变量在程序中作为存储器操作数被引用。 •标号和变量名的使用规则
– 组成:A-Z(不分大小写), 0-9, ?@ . _ $ – 不能以数字开头 – 长度小于31个字符 – 不能与保留字(指令助记符、伪指令、预定义符号等)重名 – 不能重复定义 例如: 正确的:LP1, AGAIN, NEXT, _GO, OK_1
(1)算术运算符—— +、-、*、/,MOD
➢ 用于数字表达式,例: MOV AX,4*1024
汇编后的形式为:
MOV AX,4096
➢ 用于地址表达式,例: LEA SI,TAB+3
若TAB的偏移地址为1000H,则汇编后的形式为:LEA
SI,1003H
2021/1/20
16
(2)逻辑运算符—— AND、OR、XOR、NOT
INT 21H
;返回DOS
CODE ENDS
;代码段结束
END START
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

堆栈的使用方法
分支、调用、返回控制程序
加法、乘法、除法、长字和并行运算程序
单指令、块重复、循环嵌套等重复操作程序
数据块传送程序
小数运算程序和浮点运算程序
DSP原理及应用
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
⑥ 如果源程序很长,需要书写若干行,可以在 前一行用反斜杠字符(\)结束,余下部分接 着在下一行继续书写。
2020/8/2
DSP原理及应用
8
2.标号
第5章 TMS320C54x汇编语言程序 设计
所有汇编指令和大多数汇编伪指令都可以选用标 号,供本程序或其它程序调用。
① 标号必须从语句的第1列写起,其后的冒号 “:”可任选;
地址、立即数或间接地址;
2020/8/2
DSP原理及应用
12
4.操作数
第5章 TMS320C54x汇编语言程序 设计
(1) 指令的操作数前缀 汇编器允许指定的常数、符号或表达式作为地址、
立即数或间接地址。
作为操作数的前缀有三种情况:
使用“#”符号作为操作数的前缀; 使用“*”符号作为操作数的前缀; 使用“@” 符号作为操作数的前缀。
本节将介绍汇编语言源程序的格式、各种常数、符 号、字符串和表达式的规定。
2020/8/2
DSP原理及应用
4
第5章 TMS320C54x汇编语言程序 设计
5.1 概述 5.1.1 汇编语言源程序格式
汇编语言程序以.asm为扩展名,可以用任意的编 辑器编写源文件。一条语句占源程序的一行,长度可 以是源文件编辑器格式允许的长度,但汇编器每行最 多读200个字符。因此,语句的执行部分必须限制在 200个字符以内。
② 标号为任选项,若不使用标号,则语句的 第一列必须是空格、星号或分号;
③ 标号是由字母、数字以及下划线和美元符 号等组成,最多可达32个字符;
④ 标号分大小写,且第一个字符不能是数字。
2020/8/2
DSP原理及应用
9
第5章 TMS320C54x汇编语言程序 设计
2.标号

在使用标号时,标号的值是段程序计数器SPC的 当前值。
② 标号是可选项,若使用标号,则标号必须 从第一列开始;
③ 所有包含有汇编伪指令的语句必须在一行 完成指定;
④ 各部分之间必须用空格分开,Tab字符与空 格等效;
2020/8/2
DSP原理及应用
7
第5章 TMS320C54x汇编语言程序 设计
1. 源文件格式 语句的书写规则:
⑤ 程序中注释是可选项。如果注释在第一列开 始时,前面必须标上星号或分号,在其他列 开始的注释前面必须以分号开头;
10
3.助记符
第5章 TMS320C54x汇编语言程序 设计
助记符用来表示指令所完成的操作,可以是汇编 语言指令、汇编伪指令、宏伪指令。
助记符指令:一般用大写,不能从第一列开始 ;
汇编伪指令:用来为程序提供数据和控制汇编进程。 以句号“.”开始,且用小写;
宏伪指令:用来定义一段程序,以便宏调用来调用这 段程序。以句号“.”开始,且用小写;
第5章 TMS320C54x汇编语言程序设计
5.1 概述
5.2 堆栈的使用方法
5.3 控制程序
5.4 算术运算程序
5.5 重复操作程序
5.6 数据块传送程序
5.7 小数运算程序
5.8 浮点运算程序
2020/8/2
DSP原理及应用
3
第5章 TMS320C54x汇编语言程序 设计
5.1 概述
TMS320C54x汇编语言源程序由源语句组成。 这些语句可以包含汇编语言指令、汇编伪指令和注释 。程序的编写必须符合一定的格式,以便汇编器将源 文件转换成机器语言的目标文件。
2020/8/2
DSP原理及应用
5
第5章 TMS320C54x汇编语言程序 设计
5.1.1 汇编语言源程序格式
1. 源文件格式
助记符指令源语句的每一行通常包含4个部分: 标号区、助记符区、操作数区和注释区。 助记符指令语法格式:
[标号][:] 助记符 [操作数] [; 注释]
【例5.1.1】 助记符指令源语句举例。
2020/8/2
DSP原理及应用
13
第5章 TMS320C54x汇编语言程序 设计
(1) 指令的操作数前缀
① 用“#” 作前缀
使用“#”号作为前缀,汇编器将操作数作为 立即数处理。即使操作数是寄存器或地址,也将作 为立即数。
如果操作数是地址,汇编器将把地址处理为一 个数值,而不使用地址的内容。
例如: Label: ADD # 99, B
2020/8/2
第5章 TMS320C54x汇编语言程序设计
内容提要
汇编语言程序设计是应用软件设计的基础,主要
任务是利用汇编指令和伪指令编写源程序以完成指定
的功能。
本章将结合例子介绍TMS320C54x汇编语言源程
序设计的基本方法,涉及的内容包括:
汇编语言源程序的格式
常数、字符串、符号和表达式的规定
宏调用:用来调用由宏伪指令定义的程序段。
2020/8/2
DSP原理及应用
11
4.操作数
第5章 TMS320C54x汇编语言程序 设计
操作数是指指令中参与操作的数值或汇编伪指令 定义的内容,紧跟在助记符的后面,由一个或多个空 格分开。
操作数之间必须用逗号“,”分隔; 操作数可以是常数、符号或表达式; 操作数中的常数、符号或表达式可用来作为
操作数# 99是一个立即数。
2020/8/2
DSP原理及应用
14
第5章 TMS320C54x汇编语言程序 设计
(1) 指令的操作数前缀
② 用“*”作前缀
例如,若使用.word伪指令初始化几个字,则标 号将指到第一个字。
【例5.1.2】 标号格式举例。


9 000000
;假设汇编了某个其他代码
10 000040 000A Start: .word 0Ah,3,7
000041 0003 000042 0007
标号,值为40h
2020/8/2
DSP原理及应用
NANHUA .set 1
; 符号NANHUA=1
Begin: LD #NANHUA,AR1 ; 将1加载到AR1
标 号 助记符
2020/8/2
操作数
DSP原理及应用
注释
6
第5章 TMS320C54x汇编语言程序 设计
1. 源文件格式
语句的书写规则:
① 所有语句必须以标号、空格、星号或分号 (*或;)开始;
相关文档
最新文档