Assembly Programming with GAS, Clang, NASM, and MASM
A compact booklet on using callable subroutines and compile-time macros in four widely used assembler environments.
About this book
Assembly becomes readable when repeated ideas are given names. The two most important naming tools are subroutines and macros. A subroutine is real executable code reached by call and left by ret. A macro is source text expanded by the assembler before machine code is emitted.
Key distinction
A subroutine exists at run time. A macro exists at assembly time. A subroutine can reduce code size and centralize behavior. A macro can remove repetitive notation and generate specialized instruction sequences without call overhead.
The PDF is not exposed as a public static URL. The download endpoint validates the catalog record, updates statistics, then streams the file.


