新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ASM-51宏汇编使用手册

ASM-51宏汇编使用手册

作者:时间:2011-03-27来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/172912.htm

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) 由一些独立的位组成,可以用布尔函数实现。 该段地址被解释为位地址。无目标代码生成。

表--6 程序分段的类型符号

段 标号(Label) 字节型操作数(Byte) 字型操作数(Word)

代码段CSEG L D W

数据段DSEG D D W

外部段XSEG X X E

功能段FSEG F F G

位 段BSEG B B B

说明: (1)在不同的段中类型符号不同;

(2)字节型操作数(Byte)一般通过DATA指令赋给符号; 字型操作数

一般通过WORD指令赋给符号;

(3)如果各段中用BYTE赋值,则在各段中符号全以S表示;在SIM51模

拟/调试中的符号区显示功能中,对BYTE赋值的将被跳过。

(4)在各段中,位类型可以用BIT指令赋给。

表--7 数据定义伪操作

数据定义名 含 义 说 明

DB 用于定义一个字节包含的值 表达式不是字符串时,每个表达式赋给一个字节,是字符串时,用单引号 “ ' “ 作为分隔符。

DW 用于定义一个字(16位) 每个表达式占16位。 如果表达式中的存贮内容为字符串,只取最后两个字符。若字符串只有一个字符,高字节置“0“。

DS 定义一个存贮区 通常用在代码段中,作为程序的一部分。若用在数据段,外部段,则作为位置标志

表--8 列表伪操作

伪指令 含义及格式 说 明

$TITLE 给源程序指定一个标题 标题不加 “ “,其最大长度

格式: $TITLE [标题行] 60个字符。若标题行省略, 原来定义的标题行作废。

$SUBTTL 给源程序指定一个副标题 副标题不加 “ “,其最大长

格式: $SUBTTL [副标题行] 度60字符。若副标题行省略,原来定义的副标题行作废。

$PAGE 用于形成或定义新的一页或行数 汇编时页长为66行(适合于格式: $PAGE [表达式] 标准打印纸)。表达式最大为65535,最小为12, 表达式缺省,则从新的一页开始。

$LIST 使源程序汇编时,产生程序清单 汇编时无此指令照样产生清单。

格式: $LIST

$NOLIST 使源程序汇编时不产生程序清单

格式: $NOLIST

$NOCODE 源程序汇编时,条件汇编程序值 没有此指令汇编时,不论其值是为假的不产生清单。真、假的条件都不产生目标码。

格式: $NOCODE

2、4 列表伪操作

如表--8所示,列表伪操作的含义,格式及说明。

2、5 条件伪操作

条件伪操作格式:

IF 表达式

[ 程序块1 ]

[ ELSE ]

[ 程序块2 ]

ENDIF

当IF指令中的表达式为真时,被汇编的代码段是程序块1;当IF指令中的表达式为假时,被汇编的代码段是程序块2。 在一个条件结构中,仅有一个代码段被汇编,其它的则被忽略。



关键词: 手册 使用 汇编 ASM-51

评论


相关推荐

技术专区

关闭