### 4.5 `ld` and MMIX

For MMIX, there is a choice of generating `ELF` object files or `mmo` object files when linking. The simulator `mmix` understands the `mmo` format. The binutils `objcopy` utility can translate between the two formats.

There is one special section, the .MMIX.reg_contents section. Contents in this section is assumed to correspond to that of global registers, and symbols referring to it are translated to special symbols, equal to registers. In a final link, the start address of the .MMIX.reg_contents section corresponds to the first allocated global register multiplied by 8. Register `$255` is not included in this section; it is always set to the program entry, which is at the symbol `Main` for `mmo` files.

Symbols with the prefix `__.MMIX.start.`, for example `__.MMIX.start..text` and `__.MMIX.start..data` are special; there must be only one each, even if they are local. The default linker script uses these to set the default start address of a section.

Initial and trailing multiples of zero-valued 32-bit words in a section, are left out from an mmo file.