COM-файлы использовали «плоскую модель памяти» в том смысле, что регистры сегментов были полностью установлены DOS, когда программа была загружена так, чтобы указывать на один и тот же сегмент, и весь код и указатели были, по соглашению, относительно этогоодно значение в сегментных регистрах.
Формат файла EXE, с другой стороны, позволяет загружать сегменты с разными смещениями.DOS не будет устанавливать регистры сегмента в значения по умолчанию;это было до самого кода.16-битный EXE-код намного сложнее, потому что код должен управлять сегментными регистрами.
В настоящее время большая часть EXE-кода более или менее игнорирует сегментные регистры снова;32-битные или 64-битные регистры не нужно добавлять в регистр сегмента для генерации используемого адреса.