Процессоры Intel аппаратно поддерживают сегментную организацию программы. Это означает, что любая программа состоит из трех сегментов: кода, данных и стека. Логически машинные команды в архитектуре IA-32 построены так, что при выборке каждой команды для доступа к данным программы или к стеку неявно используется информация из вполне определенных сегментных регистров. В зависимости от режима работы процессора по их содержимому определяются адреса памяти, с которых начинаются соответствующие сегменты. В программной модели IA-32 имеется шесть сегментных регистров CS, SS, DS, ES, GS, FS, служащих для доступа к четырем типам сегментов.
Сегмент кода содержит команды программы. Для доступа к этому сегменту служит регистр сегмента кода (Code Segment register) CS. Он содержит адрес сегмента с машинными командами, к которому имеет доступ процессор (эти команды загружаются в конвейер процессора).
Сегмент данных содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр сегмента данных (Data Segment register) DS, который хранит адрес сегмента данных текущей программы.
Сегмент стека представляет собой область памяти, называемую стеком. Работу со стеком процессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этой области служит регистр сегмента стека (Stack Segment register) SS, содержащий адрес сегмента стека.
Дополнительный сегмент данных. Неявно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположены в сегменте данных, адрес которого находится в регистре сегмента данных DS.
Если программе недостаточно одного сегмента данных, то она имеет возможность задействовать еще три дополнительных сегмента данных. Но в отличие от основного сегмента данных, адрес которого содержится в регистре DS, при использовании дополнительных сегментов данных их адреса требуется указывать явно с помощью специальных префиксов переопределения сегментов в команде. Адреса дополнительных сегментов данных должны содержаться в регистрах дополнительного сегмента данных (Extension Data Segment registers) ES, GS, FS.