第5章TMS320C54x的汇编语言程序设计报告

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

③ 助记符指令区 在助记符汇编语言中,紧接在标号区后面的 是助记符区和操作数区。 ⑴ 助记符区 助记符区跟在标号区的后面。 助记符指令可以是汇编语言指令、汇编伪指令、 宏伪指令。助记符区不能从第一列开始。 助记符区可以包含如下操作码。 ① 机器指令助记符,一般用大写; ② 汇编伪指令、宏伪指令。以英文句号“.”开头, 且为小写; ③ 宏调用。
例5.1.2 标号格式举例。 标号Start的值为40h: … … 9 000000 ;假设汇编了某个其他代码 10 000040 000A Start: .word 0Ah ,3 ,7 000041 0003 000042 0007
在一行中的标号本身是一个有效的语句。 标号将段程序计数器(SPC)的当前值赋 给标号,等效于下列伪指令语句: label .set $ ; $提供SPC当前值 如果标号单独占一行时,它将指到下一 行的指令(SPC不增加): 3 000043 Here: 4 000043 0003 .word 3
① 源文件格式 助记符指令源语句的每一行通常包含4个部分: 标号区、助记符区、操作数区和注释区。 助记符指令语法格式如下:
[label][:] 标号区 mnemonic 助记符区 [operand list] [;comment] 操作数区 注释区
例 助记符指令源语句举例。
NANHUA .set 1 ;符号NANHUA=1 Begin: LD #NANHUA,AR1; 将1加载到AR1 汇编语句书写格式应遵循一定规则。这些规则如下: ① 所有语句必须以一个标号、空格、星号或分号开始; ② 标号是可选项,若使用标号,则标号必须从第一列开 始; ③ 包含有一个汇编伪指令的语句必须在一行完全指定; ④ 每个区必须用一个或多个空格分开,Tab字符与空格 等效。 ⑤ 程序中注释是可选项。在第一列用*号或;号,其它 列用;号。 ⑥ 若源程序很长,需要书写若干行,可在前一行用反斜 杠(\)结束,余下接着在下一行继续书写。
⑵ 八进制整数 八进制整数型常量最多由6位八进制数字 (0~7)组成,后缀为Q(或q)或前缀为0 例如: 100011Q 32777(十进制) 124q 84(十进制) 对八进制常数也可使用C语言的记号,即 加前缀0。 0100011 32777(十进制) 0124 84(十进制)
⑶ 十进制整数 十进制整数型常量由十进制数字串组成, 无后缀。取值范围为:-32768~32767或 0~65535。例如: 2118 2118(十进制) 65535 65535(十进制) -32768 -32768(十进制)
第5章
TMS320C54x的汇编语言程序设计
知识要点:本章涉及的内容包括汇编语言 源程序的格式、常数、字符串、符号和表 达式的规定;堆栈的使用方法;分支、调 用、返回等控制程序;加法、乘法、除法、 长字和并行等算术运算程序;单指令、块 重复、循环嵌套等重复操作程序;数据块 传送程序;小数运算程序以及浮点运算程 序等。
⑵ 操作数区 操作数区是跟在助记符区后面的一系列操作 数,由一个和多个空格分开。 操作数可以是符号、常数或是符号与常数组 合的表达式。操作数之间一定用逗号“,”分开。 对操作数前缀的规定。汇编器允许将常数、 符号或表达式作为地址、立即数或间接地址。指 令操作数遵循以下规定: ◇前缀“#”后面的操作数是一个立即数。 ◇前缀“*”后面的操作数是一个间接地址。
② 标号区 所有汇编指令和大多数汇编伪指令前面 都可以选择语句标号。使用语句标号时, 必须从源语句第一列开始。 标号最多为32个字符,由(A~Z, a~z, 0~9, _和$)等组成。标号分大小写,第一个字 符不能用数字。标号后面带冒号: 在使用标号时,标号的值是段程序计数 器(SPC)的当前值。
Biblioteka Baidu
也可以用.set伪指令将符号常数赋给寄 存器名。此时,该符号变成了寄存器替代 名。例如: AuxR1 .set AR1 MVMM AuxR1,SP ⑺ 字符常数 字符常数是包括单引号内的字符串。若 单引号之间没有字符,则值为0。每个字符 在内部表示为8位ASCⅡ码。例如: ‘a’ 内部表示为61h ‘B’ 内部表示为42h
④ 注释区 注释是任选项。 注释可以由ASCⅡ码和空格组成。
5.1.2 汇编语言中的常数与字符串
汇编器支持以下几种类型的常数(常量)。 ① 二进制整数 二进制整数常量最多由16位二进制数字(0 或1)组成,后缀为B(或b)。如果数字小于16 位,汇编器将其右边对其,并在前面补零。例如: 10001000B 136(十进制) 0111100b 60(十进制) 10b 2 (十进制) 10001111B 143(十进制)
⑷ 十六进制整数 十六进制整数常量最多由4位十六进制数字组成, 带后缀H(或h)。例如: 0DH 14(十进制) 12BCH 4796(十进制) 对十六进制常数也可使用C语言的记号,即加前缀 0x: 0x0D 14(十进制) 0x12BC 4796(十进制)
⑸ 浮点数 浮点整型常量由一串十进制数字组成,可以 带小数点、分数和指数部分。浮点数的表示方法 为 [±][n]. [n][E|e] [±][n] n代表一串十进制数,小数点必须指定。例如 99.e9是有效数,但99e9非法。 ⑹ 汇编时间常数 在程序中使用.set伪指令给一个符号赋值,该 符号就成为一个汇编时间常数,等效于一个常数。 赋给符号的必须是绝对值。例如将常数值18赋给 符号nan_hua,即 nan_hua .set 18 LD # nan_hua,A
5.1 概述
TMS320C54x汇编语言源程序由源语句组 成。这些语句可以包含汇编语言指令、汇 编伪指令和注释。程序的编写必须符合一 定的格式,以便汇编器将源文件转换成机 器语言的目标文件。下面将介绍汇编语言 源程序的格式、各种常数、符号、字符串 和表达式的规定。
5.1.1 汇编语言源程序格式
汇编语言程序以.asm为扩展名,可以用任 意的编辑器编写源文件。 一句程序占源程序的一行,每行字符最多 200个,如果长度超过200,则汇编器截去 行尾的多余字符,并发出一个警告。
相关文档
最新文档