One of the most powerful features of the Assembler Language is its ability to control how statements are created and assembled. Known as "conditional assembly", this capability uses two distinct "inner" and "outer" languages. The outer language controls which elements of the more familiar inner or "base" language are generated and assembled. The most popular and widely used form of the conditional outer language is in macro instructions that can be used to encapsulate common coding sequences for improved readability, reliability, and reusability.
Part 1 of this tutorial clarifies these concepts, providing an overvew and examples of the "outer" conditional assembly language, and shows how you can use it to tailor and parameterize Assembler Language applications for maximum flexibility and maintainability. Then, we will introduce the basic concepts of macro instructions, showing how they can be used to improve the readability of your applications. Topics include variable and sequence symbols, expression evaluation, argument and parameter association, macro nesting (including recursion), functions, and macro debugging techniques.