### 4.8 `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.

Global symbols with the prefix `__.MMIX.start.`, for example `__.MMIX.start..text` and `__.MMIX.start..data` are special. 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.