ASM-51宏汇编应用指南
现。 该段地址被解释为位地址。无目标代码生成。
表--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。 在一个条件结构中,仅有一个代码段被汇编,其它的则被忽略。
2、6 宏处理操作
在源程序中,如果有一段程序需要多次使用,为使程序不重复书写这段程序,可用宏定义把所需要重复出现的程序块定义成宏指令,此后在宏指令出现的地方,宏汇编程序总是自动地把它们替换成相应的代码段。
(1) 宏指令格式
[ 宏指令名 ] MACRO [形式参数,。。。]
代码段
ENDM
在宏定义中,使用了“形式参数“,它们引用宏指令时被给出的一些名字或数值(实在参数)所替换。使用形式参数给宏指令带来了很大的灵活性。
(2)宏调用格式
[ 宏指令名 ] [实在参数,。。。]
注意:1、当有两个以上的实参数时,它们之间要用逗号,空格或列表符隔开。
2、实参数项将对应替换宏指令中形式参数。如果形式参数为标号时,则在宏调用中,实参也应为标号,且要求实参是唯一的。如果宏定义中有自己的标号,则在宏调用时,汇编程序自动地把标号变成唯一的标号。
2、7 其他
(1) 替换名 ALTNAME
功能: 这一伪指令用来自定义名字,以替换源程序中原来的保留字,替换的保留字均可等效地用于子程序中。
格式: ALTNAME 保留字 自定义名
注意: 自定义名与保留字之间首字符必须相同。
(2) 附加文件的链结 INCLUDE
功能: 利用此伪指令可将一个源文件插入到当前源文件中一起汇编,最终成为一个完整的源程序。
格式: INCLUDE [ 驱动器名: ] [ 路径名 ] 文件名
注意:1、文件名中若没有扩展名,则系统默认是。ASM(该文件必须是能打开的)。
2、被插入的源程序中不能包含END伪指令,否则汇编会停止运行。被链接文件的每一行,在程序清单中以“I“开头。
3、链接伪指令可有8级嵌套, 若要求嵌套的多, 则要修改 DOS 中的
CONFIG。SYS文件的FILES参数。
3 宏汇编运行
3、1 系统运行环境
ASM-51宏汇编要在IBM-PC及其兼容机上运行(至少128K字节的RAM);具有一个软驱动器或硬驱动器,采用ANSI标准终端(包括键盘,显示控制器,打印机,至少一个RS-232异步通讯接口)。软件有PC-DOS,MS-DOS 2。0 以上版本,ASM_51系统。
3、2 宏汇编程序的运行
以
- Virtex-II系列应用指南(06-06)
- VHDL:中文版Verilog HDL简明教程:第2章 HDL指南(06-06)
- LTE达人的简明EPC自学指南——接口篇(12-13)
- ARM处理器选型指南:选ARM7还是选Cortex-M3(11-10)
- 基于ARM9平台的电子指南针的设计(10-08)
- AT91SAM7S/7X ADS下调试指南(09-22)