In QSMM, the assembler preprocessor provides the means of encapsulating similar blocks of source code in macros reusable in an assembler program. Those macros can define nested control transfer structures and produce unique location labels when expanded. The preprocessor also provides the means of including other files in an assembler source file.
The assembler preprocessor returns a single output buffer with a preprocessed program text for an assembler program and all included source files. The preprocessed output might contain ‘line’ directives describing the locations of preprocessed text fragments in source files. The preprocessor includes this information in error and note messages. The assembler includes this information in error, warning, and note messages. The preprocessor also merges (quoted) string literals on a line going one after another and delimited by zero or more whitespace characters into a single string literal.
When performing transformations of a source text, the assembler preprocessor may break the alignment of multi-line comments. This broken alignment may prevent proper detection by the assembler whether a multi-line comment continues on the next line, and the assembler may assign comments to some instructions incorrectly. At present, you cannot generally avoid this shortcoming.
The assembler preprocessor provides only basic features necessary to work with symbols and macros. If you need more sophisticated features to generate the source text of an assembler program, either produce input to the preprocessor using an auxiliary function, program, or script or generate an assembler program that does not require preprocessing by those means directly.
|• Changing Line Number and File Name|
|• Including Other Source Files|
|• Defining Symbols|
|• Defining Macros|
|• Generating Unique Location Labels|
|• Getting Preprocessed Output|