Сегментные регистры

Микропроцессор i8086 имеет четыре сегментных регистра: CS, DS, SS, ES. Их существование обусловлено спецификой организации и использования оперативной памяти микро­процессорами Intel. Она заключается в том, что микропроцессор аппаратно поддерживает структурную организацию программы в виде четырех частей, называемых сегментами. Соответственно, такая организация памяти называется сегментной.

Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, и предназначены сегментные регистры. Фактически, с небольшой поправкой, как мы увидим далее, в этих регистрах содержатся адреса памяти, с которых начинаются соответствующие сегменты. Логика обработки машинной команды построена так, что при выборке команды, доступе к данным программы или к стеку неявно используются адреса во вполне определенных сегментных регистрах. Микропроцессор поддерживает следующие типы сегментов:

Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр CS (code segment register) – сегментный регистр кода. Он указывает на начало сегмента, содержащего исполнимый код программы.

Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр DS (data segment register) – сегментный регистр данных, который хранит адрес сегмента данных текущей программы.

Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком. Работу со стеком микропроцессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этому сегменту служит регистр SS (stack segment register) – сегментный регистр стека, содержащий адрес сегмента стека.

Дополнительный сегмент данных. Неявно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположены в сегменте данных, адрес которого находится в сегментном регистре DS. Если программе недостаточно одного сегмента данных, то она имеет возможность использовать еще один дополнительный сегмент данных. Но в отличие от основного сегмента данных, адрес которого содержится в сегментном регистре DS, при использовании дополнительного сегмента данных его адрес требуется указывать явно с помощью специальных префиксов переопределения сегментов в команде. Адрес дополнительного сегмента данных должен содержаться в регистре ES (extension data segment registers).

 








Дата добавления: 2016-03-10; просмотров: 1116;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.