宏用 macro 定义,前跟宏名,后跟可选参数,调用时用宏名加参数,参数个数不必相同,只要展开正确即可。
编译时,系统自动将宏展开并插入调用处,
| Macro1 MACRO opr1,opr2,result PUSH DX PUSH AX PUSH AX, opr1 IMUL opr2 MOV result, AX POP AX POP DX ENDM | 
| Macro1 CX, FAR, XYZ[BX] Macro1 240, BX, SAVE | 
参数与字符结合,需用 & 连接,字符串内有效。
| LEAP MACRO cond,lab J&cond lab ENDM LEAP Z, THERE '展开后调用语句是 JZ, THERE | 
定义宏后,若宏与操作符相同,宏的优先级高。
| PURGE Macro1[, Macro2 ...] | 
固定次数的重复汇编
| X = 0 REPT 10 X = X + 1 DB X END M ' 上述汇编的功效相当于:DB 1,2,3,4,5,6,7,8,9,10 | 
| CHAR = 'A' Table LABEL BYTE REPT 26 DB CHAR CHAR = CHAR + 1 ENDM ' 上述汇编相当于:DB 'A','B', ... , 'Z' | 
相对可变次数的重复汇编
| IRP X, <1,2,3,4,5,6,7,8,9,10> DB X ENDM | 
用字符串的重复汇编
| IRPC X,0 1 2 3 4 5 6 7 8 9 10 DB X+1 ENDM | 
| IRPC K,A B C D PUSH K&X ENDM ' 此代码相当于 PUSH AX PUSH BX PUSH CX PUSH DX | 
当满足一定条件,将编译一段语句,否则编译另一段语句
| 关键字 表达式 ... ELSE ... ENDIF | 
| 关键字 表达式 | 意义 | 
| IF expression | 表达式值不为 0 | 
| IFE expression | 表达式值为 0 | 
| IFDEF symbol | 定义过某符号 | 
| IFNDEF symbol | 未定义过某符号 | 
| IFB <argument> | 自变量为空 | 
| IFNB <argument> | 自变量不为空 | 
| IFIDN <arg-1>,<arg-2> | 字符串相同 | 
| IFDIF <arg-1>,<arg-2> | 字符串不同 |