; ELSE
MOV AX,X
CMP AX,Y
J&REL L
ENDIF
ENDM
宏调用:
GOTO LOOP,SUM,NZ,15
GOTO EXIT
宏展开:
+ MOV AX,SUM
+ CMP AX,15
+ JNZ LOOP
+ JMP EXIT
例3.宏定义可允许递归调用,此时条件伪操作可用来结束宏递归
宏指令POWER可以用来实现X和2N相乘.这只需对X左移N次可实现,可以设COUNT为递归次数的计数值,当该数与N相等时即可结束递归调用.
宏定义:
POWER MACRO X,N
SAL X,1
COUTN=COUT+1
IF COUNT-N
POWER X,N
ENDIF
ENDM
宏调用:
COUTN=0
POWER AX,3
宏展开:
+ SAL AX,1
+ SAL AX,1
+ SAL AX,1
例4.宏指令BRANCH产生一条转向X的转移指令.当它相对于X的距离小于128字节时产生JMP SHORT X;否则产生JMP NEAR