;
LEAP NZ,HERE
宏展开:
+ JZ THERE
+ JNZ HERE
4.&是一个操作符,它在宏定义体中可以作为哑元的前缀,展开时可以把&前后个符号合并而形成一个符号,这个符号可以是操作码,操作数或是一个字符串
宏定义:
PO MACRO P1
JMP TA&P1
ENDM
宏调用:
FO WORD_VAR
宏展开:
+ JMP TAWORD_VAR
5.实元是ASCII串的情况
宏定义:
MSGGEN MACRO LAB,NUM,XYZ
LAB&NUM DB ''HELLO MR.&XYZ''
ENDM
宏调用:
MSGGEN MSG,1,TAYLOR
宏展开:
+ MSG1 DB ''HELLO MR.TAYLOR''
6.宏指令名可以与指令助记符或伪操作名相同,在这种情况下,宏指令的优先级最高,而同名的指令或伪操作就失效了.伪操作PURGE可以用来在适当的时候取消宏定义,以便恢复指令的原始含义.
宏定义:
ADD MACRO OPR1,OPR2,RESULT
ENDM
宏调用:
ADD XX,YY,ZZ
PURGE ADD
在宏调用后,用PURGE伪操作取消定义,以便恢复ADD指令的原始含义,在PURGE ADD后面所用的ADD指令,则服从机器指令的定义.
PURGE伪操作可同时取消多个宏操作,此时各宏指令之间用逗号隔开.
7.LOCAL伪操作的使用.宏定义体内允许使用标号,如:
宏定义:
ABSOL MACRO OPER
CMP OPER,O
JGE NEXT