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).