- The assembler generates executable code from assembly and resolves external references by relocating addresses and generating relocation information.
- The linker merges object files, resolves external references by updating addresses, and generates a single executable file.
- The loader initializes the program runtime state by loading the executable code and data into memory segments, setting the initial stack size, and starting program execution.