MACRO-11

MACRO-11 is an assembly language with macro facilities for PDP-11 minicomputers from Digital Equipment Corporation (DEC). It is the successor to PAL-11 (Program Assembler Loader), an earlier version of the PDP-11 assembly language without macro facilities.
The MACRO-11 assembly language was designed for the PDP-11 minicomputer family. It was supported on all DEC PDP-11 operating systems. PDP-11 Unix systems also include an assembler (called "as"), structurally similar to MACRO-11 but with different syntax and fewer features. The MACRO-11 assembler (and programs created by it) could also run under the RSX-11 compatibility mode of VAX/VMS.
Programming example.
A complete "Hello, world!" program in PDP-11 macro assembler, to run under RT-11:
 .TITLE HELLO WORLD
 .MCALL .TTYOUT.EXIT
HELLO:: MOV #MSG,R1 ;STARTING ADDRESS OF STRING
1$: MOVB (R1)+,R0 ;FETCH NEXT CHARACTER
 BEQ DONE ;IF ZERO, EXIT LOOP
 .TTYOUT ;OTHERWISE PRINT IT
 BR 1$ ;REPEAT LOOP
DONE: .EXIT
MSG: .ASCIZ /Hello, world!/
 .END HELLO
The codice_1 pseudo-op warns the assembler that the code will be using the codice_2 and codice_3 macros. The codice_2 and codice_3 macros are defined in the standard system macro library to expand to the codice_6 instructions to call the RT-11 monitor to perform the requested functions.
If this file is , the RT-11 commands to assemble, link and run (with console output shown) are as follows:
.MACRO HELLO
ERRORS DETECTED: 0
.LINK HELLO
.R HELLO
Hello, world!
For a more complicated example of MACRO-11 code, two examples chosen at random are Kevin Murrell's KPUN.MAC, or Farba Research's JULIAN routine. More extensive libraries of PDP-11 code can be found in the Metalab freeware and Trailing Edge archives.