TMS320C54x汇编语言程序设计_第1页
TMS320C54x汇编语言程序设计_第2页
TMS320C54x汇编语言程序设计_第3页
TMS320C54x汇编语言程序设计_第4页
TMS320C54x汇编语言程序设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TMS320C54x汇编语言程序设计2026/7/517:072概述

TMS320C54x汇编语言源程序由源语句组成。这些语句可以包含汇编语言指令、汇编伪指令和注释。程序的编写必须符合一定的格式,以便汇编器将源文件转换成机器语言的目标文件。

本节将介绍汇编语言源程序的格式、各种常数、符号、字符串和表达式的规定。

2026/7/517:073

汇编语言程序以.asm为扩展名,可以用任意的编辑器编写源文件。一条语句占源程序的一行,长度可以是源文件编辑器格式允许的长度,但汇编器每行最多读200个字符。因此,语句的执行部分必须限制在200个字符以内。

1

汇编语言源程序格式

2026/7/517:0741.

源文件格式1

汇编语言源程序格式

助记符指令源语句的每一行通常包含4个部分:标号区、助记符区、操作数区和注释区。

[标号][:]

助记符

[操作数]

[;注释]助记符指令语法格式:

【例1】

助记符指令源语句举例。

NANHUA

.set

1

;符号NANHUA=1

Begin:

LD

#NANHUA,AR1

;将1加载到AR1

标号

助记符

操作数

注释

2026/7/517:0751.

源文件格式语句的书写规则:

①所有语句必须以标号、空格、星号或分号(*或;)开始;②标号是可选项,若使用标号,则标号必须从第一列开始;

③所有包含有汇编伪指令的语句必须在一行完成指定;④各部分之间必须用空格分开,Tab字符与空格等效;2026/7/517:0761.

源文件格式语句的书写规则:

⑤程序中注释是可选项。如果注释在第一列开始时,前面必须标上星号或分号,在其他列开始的注释前面必须以分号开头;

⑥如果源程序很长,需要书写若干行,可以在前一行用反斜杠字符(\)结束,余下部分接着在下一行继续书写。

2026/7/517:0772.标号

所有汇编指令和大多数汇编伪指令都可以选用标号,供本程序或其它程序调用。①标号必须从语句的第1列写起,其后的冒号“:”可任选;②标号为任选项,若不使用标号,则语句的第一列必须是空格、星号或分号;③标号是由字母、数字以及下划线和美元符号等组成,最多可达32个字符;④

标号分大小写,且第一个字符不能是数字。2026/7/517:0782.标号

在使用标号时,标号的值是段程序计数器SPC的当前值。

例如,若使用.word伪指令初始化几个字,则标号将指到第一个字。

【例2】

标号格式举例。

9

000000

10

000040

000A

Start:

.word0Ah,3,7

000041

0003

000042

0007;假设汇编了某个其他代码标号,值为40h2026/7/517:0793.助记符

助记符用来表示指令所完成的操作,可以是汇编语言指令、汇编伪指令、宏伪指令。助记符指令:一般用大写,不能从第一列开始;

汇编伪指令:用来为程序提供数据和控制汇编进程。以句号“.”开始,且用小写;宏伪指令:用来定义一段程序,以便宏调用来调用这段程序。以句号“.”开始,且用小写;

宏调用:用来调用由宏伪指令定义的程序段。2026/7/517:07104.操作数操作数是指指令中参与操作的数值或汇编伪指令定义的内容,紧跟在助记符的后面,由一个或多个空格分开。

操作数之间必须用逗号“,”分隔;

操作数可以是常数、符号或表达式;

操作数中的常数、符号或表达式可用来作为地址、立即数或间接地址;2026/7/517:07114.操作数(1)

指令的操作数前缀

使用“#”符号作为操作数的前缀;

使用“*”符号作为操作数的前缀;

使用“@”符号作为操作数的前缀。

汇编器允许指定的常数、符号或表达式作为地址、立即数或间接地址。

作为操作数的前缀有三种情况:2026/7/517:0712(1)

指令的操作数前缀①用“#”作前缀

例如:

Label:ADD

#

99,B

使用“#”号作为前缀,汇编器将操作数作为立即数处理。即使操作数是寄存器或地址,也将作为立即数。

如果操作数是地址,汇编器将把地址处理为一个数值,而不使用地址的内容。

操作数#99是一个立即数。

2026/7/517:0713(1)

指令的操作数前缀②用“*”作前缀

例如:

Label:LD*AR3,B

使用“*”符号作为前缀,汇编器将操作数作为间接地址,即把操作数的内容作为地址。

操作数*AR3指定一个间接地址。该指令将引导汇编器找到寄存器AR3的内容作为地址,然后将该地址中的内容装入指定的累加器B中。2026/7/517:0714(1)

指令的操作数前缀③用“@”作前缀

例如:

Label:LD

@x,A

使用“@”符号作为前缀,汇编器将操作数作为直接地址,即操作数由直接地址码赋值。

只要DP=0,将直接地址x中的内容装入指定的累加器A中。

2026/7/517:07155.注释

用来说明指令功能的文字,便于用户阅读。

注释可位于句首或句尾,位于句首时,以“*”或“;”开始,位于句尾时,以分号“;”开始。

注释可单独一行或数行;

注释是任选项。

1100000.bsssym,;保留空间于.bss

***************************************改变段,允许第五个‘mylab’定义***************************************

例如:2026/7/517:07162

汇编语言中的常数与字符串

汇编器可支持7种类型的常数(常量)。

数据类型举例说明二进制1110001b或1110001B八进制226q或572Q十进制1234或+1234或-11234缺省型十六进制0A40h或0A40H或0xA40浮点数1.623e-23仅用于C语言字符‘D’字符串“thisisastring”2026/7/517:07173

汇编源程序中的符号

汇编程序中的符号用于标号、常数和替代字符。

由字母、数字以及下划线和美元符号(A~Z,a~z,0~9,_和$)等组成;

符号名最多可长达200个字符;

在符号中,第1位不能是数字,并且符号中不能含空格。

2026/7/517:07183

汇编源程序中的符号1.

标号

作为标号的符号代表在程序中对应位置的符号地址。

通常,标号是局部变量,在一个文件中局部使用的标号必须是唯一的。

助记符操作码和汇编伪指令名(不带前缀“.”)为有效标号。

标号分大小写。

例如:ABC,Abc,abc是3个不同的符号。

在调用汇编器时使用-c选项,可以不分大小写。

2026/7/517:07191.

标号

标号还可以作为.global,.ref,.def或.bss等汇编伪指令的操作数。

如:.global

label

lable1

NOP

ADD

label,B

B

label12026/7/517:07204

汇编源程序中的表达式表达式可以是常数、符号,或者是由算术运算符分开的一系列常数和符号。

有效表达式的值:-32

768~32

767影响表达式的主要因素:

①圆括号()。圆括号内的表达式最先计算;

不能用大括号{}或中括号[]代替圆括号()。

②优先级。’C54x汇编器使用与C语言相似的优先级,优先级高的先计算;

从左到右运算。具有相同的优先级,按从左到右的顺序计算。序号符号运算操作求值顺序1+-~!取正、取负、按位求补、逻辑负

从右至左2*/%乘法、除法、求模从左至右3+-加法、减法从左至右4^指数

从左到右

5<<>>左移、右移从左至右6<<=小于、小于等于从左至右7>>=大于、大于等于从左至右8!==不等于、等于从左至右9&按位与运算从左至右10∧

按位异或运算从左至右11|按位或运算从左至右2026/7/517:07214

汇编源程序中的表达式1.

运算符

’C54x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论