o If a macro has the same name as an Alpha opcode, the macro
is used instead of the instruction. This feature allows you to
temporarily redefine an opcode.
o You can redefine a macro by using a .MACRO directive with the
same name as in a previous macro definition. Therefore, the
previous macro definition is implicitly deleted and the new
macro definition supersedes the previous definition. See the
.MDELETE directive for more information on macro deletion.
o You can nest a macro definition within another macro
definition. The inner macro is not defined until the outer
macro is invoked.
o You can nest a macro invocation so that one macro can invoke
another. The assembler supports nested macro invocations to a
depth of 1000. If a macro invokes itself, either directly or
indirectly, it is recursive. Recursive macros must specify a
basis-step in order to avoid infinite recursion. A basis-step
is a macro exit condition that will eventually cause the macro
to exit, which ends the recursion (see Example 3).