You copied the Doc URL to your clipboard.

Directives that can be omitted in pass 2 of the assembler

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:

  • GBLA, GBLL, GBLS

  • LCLA, LCLL, LCLS

  • SETA, SETL, SETS

  • RN, RLIST

  • CN, CP

  • SN, DN, QN

  • EQU

  • MAP, FIELD

  • GET, INCLUDE

  • IF, ELSE, ELIF, ENDIF

  • WHILE, WEND

  • ASSERT

  • ATTR

  • COMMON

  • EXORTAS

  • IMPORT

  • EXTERN

  • KEEP

  • MACRO, MEND, MEXIT

  • REQUIRE8

  • PRESERVE8.

Note

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.

    AREA ||.text||,CODE 
x   EQU 42
    IF :LNOT: :DEF: sym
        ASSERT x == 42
    ENDIF
sym EQU 1
    END

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 ELSE and ELIF directives if their matching IF directive appears in pass 1. Example 4 assembles without error because the IF directive appears in pass 1.

    AREA ||.text||,CODE 
x   EQU 42
    IF :DEF: sym
    ELSE
        ASSERT x == 42
    ENDIF
sym EQU 1
    END

Was this page helpful? Yes No