
5.4 Basic Compilation Techniques 227
second phase,the loader merges all symbol tables from the object files into a single,
large table. It then edits the object files to change relative addresses into addresses.
This is typically performed by having the assembler write extra bits into the object
file to identify the instructions and fields that refer to labels. If a label cannot be
found in the merged symbol table, it is undefined and an error message is sent to
the user.
Controlling where code modules are loaded into memory is important in
embedded systems. Some data structures and instructions, such as those used to
manage interrupts, must be put at precise ...