Most directives must appear in both passes of the assembly process. There are a number of directives that can be omitted from pass 2, but doing this is strongly discouraged. Directives that can be omitted from pass 2 are:
Macros that appear only in pass 1 and not in pass 2 must contain only the above directives.
For example, the code in Example 3 assembles without error although the
ASSERT directive does
not appear in pass 2.
Directives that appear in pass 2 but do not appear in pass
1 cause an assembly error. However, this does not cause an assembly
error when using the
if their matching
IF directive appears in pass 1. Example 4 assembles
without error because the IF directive appears in pass 1.