Сегментный регистр - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если третье лезвие бреет еще чище, то зачем нужны первые два? Законы Мерфи (еще...)

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

Cтраница 1


1 Структурная схема микропроцессора KM18IOBM86. [1]

Сегментные регистры используются для организации сегментной адресации памяти и предназначены для хранения базовых адресов текущих сегментов памяти.  [2]

3 Сегментация адресного пространства памяти.| Формирование исполнительного ( физического адреса. [3]

Сегментные регистры позволяют осуществлять динамическое распределение памяти, необходимое для реализации мультипрограммного ( многозадачного) режима работы МП ( см. гл. Перемещение программ и данных в памяти производится простым изменением сегментных адресов в сегментных регистрах.  [4]

Сегментные регистры соответствуют четырем сегментам памяти: данных - DS, стека - SS, кода - CS и промежуточных данных - ES. В каждом из этих регистров хранятся 16 старших разрядов кода адреса соответствующего сегмента памяти; 20-разрядный физический адрес, позволяющий работать с памятью емкостью до 1 Мбайт, образуется в СМА путем сдвига базового адреса сегмента на четыре разряда влево и сложения его с 16-разрядным адресом смещения. Адрес смещения находится в одном из регистров указателей или индексов УО и позволяет адресовать байты или слова в пределах 64 Кбайт выбранного сегмента. Если полученное в СМА значение превышает значение самого старшего адреса сегмента, то физический адрес вновь отсчитывается от начала сегмента до значения превышения. При вычислении физического адреса операнда в качестве базового адреса используется содержимое регистров сегмента данных и сегмента промежуточных данных, а при вычислении физического адреса команды - содержимое регистра сегмента кода. Регистр адреса команд ( указатель команд) IP соответствует счетчику команд микропроцессора К580ВМ80А и указывает следующую команду, которая будет выполняться после текущей команды. Устройство сопряжения записывает в него из У О смещение следующей команды от начала текущего сегмента кода. Если содержимое регистра адреса команд засылается в стек, то происходит автоматическая настройка его на адрес следующей команды.  [5]

Сегментные регистры CS, DS, SS и ES хранят не сами базовые ( начальные) адреса сегментов, а селекторы, определяющие адреса в памяти, по которым хранятся дескрипторы ( описатели) сегментов. Область памяти с дескрипторами называется таблицей дескрипторов.  [6]

Сегментные регистры CS - ES служат для указания четырех сегментов, располагаемых в основной памяти.  [7]

Сегментные регистры CS - ES выделяют в памяти объемом 1 Мбайт четыре сегмента до 64К байт каждый. Сегменты выравнены по границе 16 байт ( граница параграфа) и могут частично или полностью перекрываться друг с другом, как показано на рис. 6.3. Эти сегменты в отличие от остальных будем называть открытыми для доступа, вкладывая в это понятие тот смысл, что их селекторы хранятся в сегментных регистрах и, следовательно, доступ к ним открыт.  [8]

9 Пример конвейерного выполнения команд. [9]

Сегментные регистры хранят базовые ( начальные) адреса сегментов памяти: кодового сегмента CS, в котором содержится программа; стекового сегмента SS; сегмента данных DS; дополнительного сегмента ES, в котором обычно содержатся данные. Наличие сегментных регистров обусловлено разделением памяти на сегменты и используемым способом формирования адресов памяти.  [10]

Смена сегментного регистра в соответствии с вариантами, указанными в табл. 1.14, осуществляется с помощью однобайтового префикса замены сегмента 001SR110, который ставится перед первым байтом команды. Двухбитовое поле SR содержит код сегментного регистра, используемого для вычисления физического адреса в данной команде: 00 - регистр ES; 01 - CS, 10 - SS; 11 - DS. В мнемонических обозначениях команд смена сегмента отражается следующим образом: MOV AX, CS: [ BX ] - пересылка в АХ слова из кодового сегмента со смещением из BX; ADD ES: ROW [ DI ], BL - сложение байта из дополнительного сегмента ( со смещением ROW) с содержимым регистра BL и размещение результата в ОЗУ на место первого слагаемого.  [11]

В сегментных регистрах в этом режиме хранятся селекторы, содержащие адресные ссылки на соответствующие таблицы дескрипторов.  [12]

В сегментном регистре хранится 16 старших битов 20-битового начального адреса сегмента. Четыре младших бита адреса принимаются равными нулю и дописываются справа к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поскольку других ограничений на размещение сегментов в памяти нет, сегменты могут быть соседними ( смежными), неперекрывающимися, частично или полностью перекрывающимися. Физическая ячейка памяти может принадлежать одному или нескольким сегментам.  [13]

Когда в сегментный регистр загружается значение селектора, связанный с ним регистр дескриптора автоматически обновляется необходимой информацией. В режиме реальной адресации только адрес базы обновляется непосредственным вычислением ( сдвигом значения селектора на 4 бита влево), так как размер сегмента и атрибуты в режиме реальной адресации фиксированы. В режиме реальной адресации с защитой базовый адрес, размер и атрибуты обновляются согласно содержимому дескриптора сегмента, расположенного в памяти и индексированного в соответствующей таблице по селектору.  [14]

При загрузке сегментного регистра в Pentium II вызывается соответствующий дескриптор, который загружается в невидимую часть сегментного регистра.  [15]



Страницы:      1    2    3    4