新闻中心

EEPW首页>嵌入式系统>设计应用> ASM-51宏汇编应用指南

ASM-51宏汇编应用指南

作者: 时间:2012-05-12 来源:网络 收藏

2、6 宏处理操作

本文引用地址://m.amcfsurvey.com/article/171459.htm

在源程序中,如果有一段程序需要多次使用,为使程序不重复书写这段程序,可用宏定义把所需要重复出现的程序块定义成宏指令,此后在宏指令出现的地方,宏程序总是自动地把它们替换成相应的代码段。

(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 系统运行环境

宏汇编要在IBM-PC及其兼容机上运行(至少128K字节的RAM);具有一个软驱动器或硬驱动器,采用ANSI标准终端(包括键盘,显示控制器,打印机,至少一个RS-232异步通讯接口)。软件有PC-DOS,MS-DOS 2。0 以上版本,ASM_51系统。

3、2 宏汇编程序的运行

以 8051 宏汇编为例,在DOS系统的提示符下键入

A> ASM51 文件名。ASM CR>

等错误的个数出现后 ,键入 CR> 变返回到DOS提示符下。8051的宏汇编与此相似。

4 汇编的使用

使用宏汇编是将8051源程序汇编生成列表输出文件和目标代码文件,供模拟/调试时使用。我们使用的宏汇编完全采用Inter标准助记符和行格式,因此在编写源程序时,可以使用宏汇编中的伪指令, 以增加源程序的运行速度和可读性。也可以直接用 Inter 标准助记符来编写源程序。再经过宏汇编进行汇编,便可得到列表输出文件和目标代码文件。

汇编的格式如下:

> ASM51 文件名。ASM [ 可选项 ]

其中可选项为: /L, /H, /S, /P, /N

/L 表示源程序汇编后不生成列表册输出文件(.LST),只显示在屏幕上。

/H 表示源程序汇编后不生成目标代码文件(.HEX)。

/S 表示源程序汇编后不生成符号表。

/P 表示源程序汇编后生成符号表。

/N 表示源程序汇编后,程序是连续的显示。

如果没有选择项,则表示产生列表输出文件和目标代码文件,且在LST文件后面列出符号表。 生成的目标代码便可以进行模拟/调试,如果在模拟/调试中发现错误,则源程序要经过修改,重新汇编,然后再进行模拟/调试,直到完全正确。

若程序汇编过程中有错误,则给出出错信息(出错信息见附录)。 生成的目标代码可以进行模拟/调试/烧写。

附录 ASM-51 汇编出错信息表

1 Address Out of Range 一个被计值的目标地址超出了当前语句的范围。

2 Badly Formed Argument 数字规定的类型中有非法数字存在。

3 Illefal Equale 有不允许的类型约定。

4 Label Name Conflicts With Symbol Name 在程序中有两个符号相同。

5 Label Address Changed On Pass 2。 源程序在此错误之前,还有一些错误。

6 Missing Argument in Expression 表达式中算术运算符后面没有操作数。

7 Missing END Statrment 汇编的源程序结尾未发现END语句。

8 Multiply Defined Label 源程序中定义了两个标号。

9 Unbalanced Parentheses 表达式中多余或缺少括号。

10 Undefined Symbol 语句中的符号名可能拼错或未被定义。

11 Unrecognized Statemen or Undefined Argument 未定义参数的指令或代码。

12 Value Out of Range 有一个非法的值来说明一个有着可能值限制的语句。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭