ITEEDU

9.6 宏的扩充

MASM 6.11编程系统对宏定义及其相关语句进行了一定程度的扩充。虽然这些扩充给编程带来了一些方便,但它们不一定能被其它的汇编语言编程系统所接受,所以,程序员在使用这些方便的扩充功能时,要注意到可能带来的限制。

下面介绍MASM 6.11编程系统对宏及其相关语句的扩充。

9.6.1 宏定义形式

在MASM 6.11编程系统中,其宏定义的一般形式如下:

宏名 MACRO?[参数1[:tag]] [,参数2[:tag]...]

[LOCAL varlist]

…

[EXITM [value]]

ENDM ;宏定义体内的局部变量和标号 

;宏的定义体 

对上述宏定义的说明与9.1.1节中的说明完全一致,其需要增加的说明如下:

tag——  其值可以是REQ、=<缺省值>或VARARG

REQ 指定该参数是不可缺少。在宏引用时,若该参数不对应某个“实参”,那么,汇编程序会报错;
=<缺省值> 在宏引用时,若不指定该参数所对应的“实参”,那么,该参数就取其缺省值;
VARARG 该参数对应一个可变长的实参表,各实参之间用逗号分开;若参数的属性指定为VARARG,那么,该参数一定要是最后一个参数。 有关该属性的应用,请见随后9.6.7节中的举例。
value——  宏功能的返回值,其为可选项。