定位段和一个可选的再定位类型。
指令格式:再定位段型 SEGMENT 段类型(再定位类型) 段类型用于指定所声明的段将处的储存器地址空间,可用的段类型有CODE/XDATA/DATA/IDATA 和BIT。
例如: FLAG SEGMENT BIT PONITER SEGMENT IDATA
27、SET
功能:SET 指令类似于EQU 指令,不同的是SET 指令定义过的符号可重定义。
指令格式:符号名 SET 表达式 符号名 SET 寄存器名
例如:MAX SET 2000 MAX SET 3000
28、TTILE
功能:TITLE伪指令用于在列表文件页头建立一个标题,其格式为: $TITLE 标题行
这里标量行就是将出现在页头的标量与通常的字符串定义不同。这里标量行不加引号。汇编从$TITLE 之后的第一个可打印字符开始,到回车符之间的字符串作为标量标量的最大长度是60个字符,基标量行省略,则标题行为空行。若TITLE伪指令在一页,它说明的标量行包含在本页,否则,标题将出现在下页页头。
29、XDATA
功能:XDATA 指令用于将一个外部RAM 的地址赋给指定的符号名。 指令格式:符号名 XDATA 表达式
例如:RSEG XSEG1 ;选择一个外部数据段 ORG 100H
MING DS 10 ;在标号MING 处保留10 个字节 HOUR XDATA MING+5
MUNIT XDATA HOUR+5
30、XSEG
功能:绝对选择指令XSEG外部绝对数据段xdata 指令格式如下:
XSEG [AT 绝对地址表达式]
31、USING指令
USING指令通知汇编器使用8051的哪一个工作寄存器组。
格式:USING表达式(值必须为0-3,默认值为0。)
USING0 使用第0组工作寄存器。
32、ORG指令
ORG指令用来改变汇编器的计数器,从而设定一个新的程序起始地址。
格式:ORG表达式 表达式必须是绝对或简单再定位表达式。
ORG0000H AJMPMAIN 设定 MAIN 程序的起始地址为 0000H。
数据定义伪操作格式:
[ 标号: ] 数据定义名[ 表达式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
位段BSEGB 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 给源程序指定一个副标题 副标题不加 ““,其最大长度60字符。若副标题行省略,
格式: $SUBTTL [副标题行] 原来定义的副标题行作废。
$PAGE 用于形成或定义新的一页或行数 汇编时页长为66行(适合于格式: $PAGE [表达式] 标准打印纸) 。表达式最大为65535,最小为12, 表达式缺省,则从新的一页开始。
$LIST 使源程序汇编时,产生程序清单 汇编时无此指令照样产生清单。 格式: $LIST
$NOLIST 使源程序汇编时不产生程序清单 格式: $NOLIST