首页 理论教育 宏定义与宏参数的调用方法

宏定义与宏参数的调用方法

时间:2023-11-16 理论教育 版权反馈
【摘要】:特殊宏操作符%用来将其后的表达式转换成它所代表的数值,并将此数值的ASCII码字符嵌入到宏扩展中。例如:宏定义:DATA MACRO A,B,C,DDWA,B,CDBD DUPENDM宏调用:X=10Y=20DATA%X+2,5,%X+Y,%Y-5宏扩展:DW 12,5,30DB 15D UP3.宏体中的变量与标号在某些宏定义中,常常需要定义一些变量或标号,当这些宏定义在同一程序中多次调用并进行宏扩展后,就会出现变量或标号重复定义的错误。LOCAL语句只能作为宏体的第一条语句,它后面即为宏定义的变量和标号表。

宏定义与宏参数的调用方法

1.带间隔符的实参

在宏调用中,有时实参是一串带间隔符(如空格、逗号等)的字符串,为了不至于混淆,应用尖括号将它们括起来,作为一个实参。

例如:STACK0<500 DUP(0)>,尖括号的内容为一个实参。

2.数字参数

在某些情况下,需要以实参的值而不是符号本身代替形参,这种参数的替换称为数字参数的替换。特殊宏操作符%用来将其后的表达式转换成它所代表的数值,并将此数值的ASCII码字符嵌入到宏扩展中。

例如:

宏定义:DATA MACRO A,B,C,D

DWA,B,C

DBD DUP(0)

ENDM

宏调用:X=10(www.xing528.com)

Y=20

DATA%X+2,5,%X+Y,%Y-5

宏扩展:DW 12,5,30

DB 15D UP(0)

3.宏体中的变量与标号

在某些宏定义中,常常需要定义一些变量或标号,当这些宏定义在同一程序中多次调用并进行宏扩展后,就会出现变量或标号重复定义的错误。为了解决这个问题,8086宏汇编语言提供了伪指令LOCAL。

语句格式:LOCAL 标号和变量表

功能:在宏扩展时,宏汇编程序自动将用LOCAL说明的变量或标号表示为唯一的特殊符号(??0000~??FFFFH),从而避免了符号重复定义的错误。

LOCAL语句只能作为宏体的第一条语句,它后面即为宏定义的变量和标号表。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈