Processing sequence
The assembler processes the machine and assembler language instructions at different times during its processing sequence. You should be aware of the assembler's processing sequence in order to code your program correctly.
The assembler processes most instructions twice, first during conditional assembly and, later, at assembly time. Some processing is done only during conditional assembly.
- Conditional assembly and macro instructions
- The assembler processes conditional assembly instructions and
macro processing instructions during conditional assembly. During
this processing the assembler evaluates arithmetic, logical, and character
conditional assembly expressions. Conditional assembly takes place
before assembly time.
The assembler processes the machine and ordinary assembler instructions generated from a macro definition called by a macro instruction at assembly time.
- Machine instructions
- The assembler processes all machine instructions, and translates them into object code at assembly time.
- Assembler instructions
- The assembler processes ordinary assembler instructions at assembly
time. During this processing:
- The assembler evaluates absolute and relocatable expressions (sometimes called assembly-time expressions)
- Some instructions, such as ADATA, ALIAS, CATTR and XATTR (z/OS® and CMS), DC, DS, ENTRY, EXTRN, PUNCH, and REPRO, produce output for later processing by programs such as the binder.
The assembler prints in a program listing all the information it produces at the various processing times discussed above. The assembler also produces information for other processors. The binder uses such information at link-edit time to convert one or more object modules into a load module. To run the program, the operating system loads the load module produced by the binder into storage and branches to the load module's entry point.