Identification - name of module, and length of the various parts of the object module.
Entry point table - list of symbols in module that have been declared public and their value (usually address). These are known as entry points.
Exernal reference table - list of symbols used in module but exist (refer to) locations in other modules and the commands that use them. This is needed to determine the correct way to replace the dummy values with valid addresses.
Machine instructions and constants - the actual block of binary code that will be the program. This is the only part of the object module (once linked) that will be put in the executable program.
Relocation dictionary - lists locations of operands that reference external or relocatable symbols and opcode that uses them.
A table indicating which bytes of the machine instruction section are references to relocatable addresses or external links. Since the machine instruction section is a sequence of binary values with no indication of their meaining, a map or table is required to identify the bytes to adjust. The opcode type is needed to determine the correct way to format the operand when the modules are linked
End of module - contains the starting address of the program and possibly a checksum to help the linker catch errors.