4.40 Macro Directive

The MPASM MACRO directive defines a macro.

Suggested Replacement

The PIC Assembler's MACRO directive is direct replacement.

Within a macro definition, the & character can be used to permit the concatenation of macro arguments with other text, but is removed in the actual expansion. For example:

loadPort MACRO port, value
  movlw value
  movwf PORT&port
ENDM

will load PORTA if port is A when called, etc. The special meaning of the & token in macros implies that you must only use the and form of the bitwise AND operator.

A comment can be suppressed within the expansion of a macro by opening the comment with two semicolons, ;;.

When invoking a macro, the argument list must be comma-separated. If it is desired to include a comma (or other delimiter such as a space) in an argument then angle brackets < and > can be used to quote.

If an argument is preceded by a percent sign, %, that argument will be evaluated as an expression and passed as a decimal number, rather than as a string. This is useful if evaluation of the argument inside the macro body would yield a different result.

The nul operator can be used within a macro to test a macro argument, for example:

IF nul     arg3  ;argument was not supplied.
...
ELSE             ;argument was supplied
...
ENDIF