ASM-51宏汇编使用手册
制。程序中的所有段都必须用段名开头,段结束语句ENDS结束。
1、6 源文件
源文件是由汇编语言代码和汇编程序指令组成的 ASCII 字符文件, 扩展名为。ASM。源文件的每一语句行,最多有四个域。每一行的长度不超过80个字符, 且以“回车“键结束。
1、7 列表输出文件和目标代码文件
(1) 目标代码文件(.HEX)
目标代码文件(.HEX)是ASCII文件,它只包含由各种程序语句所生成的代码,而不包含任何信息或助记符。 该文件是能够在处理器上运行的实际机器指令码。
目标代码文件格式如下:
:cc aaaa tt dd aa dd ss CR>
计数器 数据类型 记录地址 回车
记录地址 代码的字节 和校验
目标代码文件(.HEX)的每一行以一个冒号开始, 后面跟着的数字和符号分别表示十六进制数据的计数器(cc),记录第一个数据字节的16位地址(aaaa),目标记录的数据类型(tt),代码的实际字节(dd),计数器从第一个数据字节到最后的所有字节值累加和的相反数即和校验(ss)等等。
(2)列表输出文件(.LST)
列表输出文件也是个ASCII文件,它由源程序和目标代码文件组成, 可作为程序文档也可被打印。
列表输出文件是分页显示,打印的,其长度由缺省值或伪指令$PAGE决定。 每页一开始指出汇编程序的类型,版本以及页号等。
2、 伪操作指令
汇编语言中的指示性语句(伪指令),不象指令性语句会产生目标代码, 它主要是用来“控制指挥“汇编程序如何把指令性语句翻译成目标代码。除本身伪指令申请分配一部分存贮空间作数据区和堆栈区外,不产生任何目标代码。
按照它们的功能,大致分成七类: 符号定义伪操作,段定义伪操作,数据定义伪操作,列表伪操作,条件伪操作,宏处理伪操作以及其它操作等。如表--3所示。
表--3 伪操作指令
序号 分 类 伪 操 作 指 令
1 符号定义伪操作 EQU,=,DATA,BYTE,WORD,BIT,SET
2 段定义伪操作 ORG,END,CSEG,DSEG,XSEG,FSEG,ENDS
3 数据定义伪操作 DB,DW,DS
4 列表伪操作 $TITLE,$SUBTTL,$PAGE,$LIST,$NOLIST,$NOCODE
5 条件伪操作 IF,ELSE,ENDIF
6 宏处理伪操作 MACRO,ENDM
7 其 它 ALTNAME,INCLUDE
2、1 符号定义伪操作
符号定义伪操作及其格式: 符号名 符号定义名 常量或表达式
其中符号定义名可以为EQU,=,DATA,BYTE,WORD,BIT,SET等。下面就是这些符
号定义伪操作的用法及说明。如表--4所示。
表--4 符号定义伪操作
符号定义名 用 法 说 明
EQU 为常量,符号名等定义符号化常量名 符号名不能重名定义
= 为常量,符号名等定义符号化常量名 符号名不能重名定义
DATA 用来为一个字节类型的符号定值 符号名不能重名定义
BYTE 用来为一个字节类型的符号定值 符号名不能重名定义
WORD 用来为一个字类型的符号定值 符号名不能重名定义
8051中没有字操作
BIT 用来定义一个字位类型
SET 用来定义整数类型的符号名 符号名可重名定义
DATA与BYTE的区别: DATA与BYTE是相类似的伪指令。 当程序运行到DATA伪指令定义的符号名时,该符号名将被显示;而由BYTE定义的符号名不被显示。
2、2 段定义伪操作
(1) ORG 用于设置或改变程序计数器的值。
其格式为: ORG 常数或表达式
例如: ORG 0008H
ORG $+5
其中$表示程序计数器的当前值。
(2) END 表示源代码结束。
其格式为: END 常数或表达式
汇编程序遇到END语句即停止运行。 若程序中没有END,则在汇编源程序时显出错
(3) 8051系列的处理器把内存结构分成五个段,代码段CSEG,数据段DSEG,外部段XSEG,功能段FSEG和位段BSEG等,其用法及区别如 表--5所示。
在汇编以上各段所定义的符号时,系统根据符号所在不同段,赋与不同类型的字母,如表--6所示。
2、3 数据定义伪操作
数据定义伪操作格式:
[ 标号: ] 数据定义名 [ 表达式1,表达式2,。。。 ]
其中数据定义名可为DB,DW,DS等。
如表--7所示,数据定义伪操作的含义及说明。
表--5 段定义伪操作
段 用 法 及 区 别
代码段(CSEG) 包含由处理器所执行的程序。段名可缺省。有目标代码生成。
数据段(DESG) 由内部工作寄存器的处理器的RAM组成。用来对程序使用的数据地址赋符号名,大多以ORG,DATA,BYTE,WORD,EDNS等组成。 无目标码生成。
外部段(XSEG) 由外部工作寄存区和RAM组成。使用方法同数据段。无目标码生成。
功能段(FSEG) 由特殊寄存器位置组成(如:输入/输出部件,计时器,中断控制和连续的寄存器部件接口等)。无目标代码生成。
位 段(BSEG) 由一些独立的位组成,可以用布尔函数实
- 关于STM32数据手册中的定时器信号(11-30)
- STM32的数据手册和技术参考手册的区别(11-28)
- CAN总线使用总结(12-16)
- SPI总线协议使用与原理(12-15)
- 变频器的使用和维护方法(12-14)
- RS-485 使用要诀(12-14)