IBM S/370 Macro Assembler also was very feature-rich. I needed to have modules be loaded into the kernel in a certain order, so I implemented sorting of symbolic names in macro-asm (had to use loops at the macro level if I recall), and then assembly code would be emitted clean, already in the right sequence.
DCB was the same magic incantation as #include <stdio.h>
DCB was the same magic incantation as #include <stdio.h>