This document is the MACRO Assembler Reference Manual for the DECSYSTEM-20, published by Digital Equipment Corporation.
It serves as a comprehensive reference for programmers familiar with assemblers and assembly languages. The MACRO Assembler is a two-pass symbolic assembler that translates MACRO statements into relocatable binary machine instruction code, suitable for loading by the system's linking loader (LINK).
Key capabilities and features of the MACRO Assembler include:
- Language Interpretation: Interprets machine instruction mnemonics, symbols, and a wide range of pseudo-operations (directives).
- Macro Processing: Supports defining and expanding user-created macros, allowing programmers to tailor the assembler's functions and generate repetitive code passages efficiently.
- Data Handling: Processes various number formats (integers, fixed-point, floating-point, binary, octal, decimal) and character strings (ASCII, SIXBIT).
- Expression Evaluation: Handles arithmetic, logical, and "Polish" (complex) expressions, resolving values or generating relocatable expressions for the linker.
- Memory Management: Assigns memory addresses, manages relocation counters, and supports program segmentation (single-segment, two-segment, and PSECTs).
- Input/Output: Is device-independent for input/output files but relies on the DECSYSTEM-20 monitor for device-independent I/O services.
- Output Generation: Produces relocatable binary program files (.REL), program listing files (.LST) with source, binary code, and errors, and UNIVERSAL symbol definition files (.UNV) that can be searched by other assemblies.
- Error Reporting: Provides informational messages, single-character error codes, and MCRxxx messages.
The manual is structured to provide detailed information on MACRO's language elements, pseudo-ops (with formats, functions, examples, and common errors for each), macro statements and processing, assembler output, programming considerations (segmentation, universal files, conditional assembly), and includes appendices for character sets, special characters, machine instruction mnemonics, and program examples.