В программной модели микропроцессора имеется шесть сегментных регистров: CS, SS, DS, ES, GS, FS. Сегментные регистры предназначены для обеспечения доступа к оперативной памяти.
В реальном режиме работы микропроцессора в этих регистрах содержатся адреса памяти, с которых начинаются соответствующие сегменты. Микропроцессор поддерживает следующие типы сегментов:
· Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр CS (code segment register) – сегментный регистр кода. Он содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (то есть эти команды загружаются в конвейер микропроцессора);
· Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр DS (data segment register) – сегментный регистр данных, который хранит адрес сегмента данных текущей программы;
· Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком. Для доступа к этому сегменту служит регистр SS (stack segment register) – сегментный регистр стека, содержащий адрес сегмента стека;
|
|
· Дополнительный сегмент данных. Неявно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположены в сегменте данных, адрес которого находится в сегментном регистре DS. Адреса дополнительных сегментов данных содержатся также в регистрах ES, GS, FS (extension data segment registers).
В защищённом режиме работы микропроцессора сегментные регистры также используются для обращения к оперативной памяти, но с использованием механизма защиты памяти.
Понятие программной модели IA-32. Регистры состояния и управления.