Формирование физического адреса в реальном режиме

Реальный режим был введен для микропроцессоров Intel 8086. Свойства этого микропроцессора и обусловили свойства механизма адресации физической памяти в реальном режиме. Перечислим эти свойства.

· Спектр конфигурации физического адреса — от 0 до 1 Мбайт. Данная величина определяется тем, что шина адреса i8086 имела 20 линий.

· Наибольший размер сектора — 64 Кбайт. Это разъясняется 16-разрядной архитектурой i8086. В эти Формирование физического адреса в реальном режиме регистры могут быть записаны значения от 0 до 216-1, что применительно к памяти и определяет размер сектора 216б=26210б=64 Кбайт.

· Для воззвания к определенному физическому адресу оперативки нужно найти адресок начала сектора (сегментную составляющую) и смещение снутри сектора.

Понятие адреса начала сектора ввиду принципной значимости просит дополнительного пояснения.

Исходя из разрядности сегментных Формирование физического адреса в реальном режиме регистров, можно утверждать, что адресок начала сектора (либо база сектора) представляет собой всего только 16-разрядное значение, помещенное в один из сегментных регистров. Наибольшее значение, которое при всем этом выходит, соответствует 216-1. Если так рассуждать, то выходит, что адресок начала сектора может быть исключительно в спектре 0-64 Кбайт от начала Формирование физического адреса в реальном режиме оперативки. Появляется вопрос: как адресовать остальную часть оперативки прямо до 1 Мбайт с учетом того, что размер самого сектора не превосходит 64 Кбайт?

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

На рисунке 2 видно, как формируется некий мотивированной физический адресок: старшие 16 битов физического адреса начала сектора(так именуемая сегментная часть) извлекаются из 1-го из сегментных регистров, двигается на Формирование физического адреса в реальном режиме четыре разряда на лево и суммируется со смещением. В свою очередь, видно, что значение смещения можно получить минимум из 1-го и максимум из 3-х источников: из значения смещения в самой машинной команде и/либо из содержимого 1-го базисного и/либо 1-го индексного регистра. Количество источников, участвующих в формировании смещения, определяется кодировкой определенной Формирование физического адреса в реальном режиме машинной команды, и если таких источников несколько, то значения в их складываются.

Рис. 2. Механизм формирования физического адреса в реальном режиме

Микропроцессоры Intel 80486 и Pentium имеют 32-разрядную шину адреса. Пока микропроцессор находится в реальном режиме, старшие 12 линий шины адреса этих микропроцессоров просто недосягаемы.

Недочеты реального режима:

· сегменты бесконтрольно располагаются с хоть Формирование физического адреса в реальном режиме какого адреса, кратного 16 (потому что содержимое сегментного регистра аппаратно сдвигается на 4 разряда), и, как следствие, программка может обращаться по хоть каким адресам, в том числе и реально не имеющимся;

· сегменты имеют наибольший размер 64 Кбайт;

· сегменты могут перекрываться другими секторами.

Дело обстоит последующим образом:

Как уже отмечали, для того Формирование физического адреса в реальном режиме, чтоб найти физический адресок начала сектора, старшие 16 битов адреса начала сектора извлекаются из 1-го из сегментных регистров, к примеру, CS, а потом происходит сдвиг на четыре разряда на лево.

Представим, что в DS (регистр сектора данных) находится значение , то при сдвиге на 4 разряда на лево получим , другими Формирование физического адреса в реальном режиме словами физический адресок начала сектора данных будет равен этому числу либо 1·25=32.

Представим, что SS (регистр сектора стека) находится значение , то при сдвиге на 4 разряда на лево получим , другими словами физический адресок начала сектора данных будет равен этому числу либо 1·25+1·24=48.

Малое расстояние меж началами 2-ух частей составляет 16 адресов (каждый адресок показывает на один Формирование физического адреса в реальном режиме б). Так как наибольший размер сектора составляет 64 Кбайта, то может быть обоюдное перекрытие частей (другими словами, к примеру, если DI будет содержать смещение, равное 20, то физический адресок данных будет равен 32+20=52, другими словами будет происходить воззвание в область сектора стека, который начинается с 48 адреса.

Желанием ввести в архитектуру средства Формирование физического адреса в реальном режиме, дозволяющие избавиться от обозначенных недочетов, и обосновано, а именно, возникновение защищенного режима, в каком работают все современные операционные системы, в том числе Windows и Linux.


formirovanie-analiticheskoj-tradicii-e-v-afonasin-otvetstvennij-sekretar.html
formirovanie-assortimenta-optovoj-torgovoj-organizacii-i-faktori-ego-opredelyayushie-politika-formirovaniya-assortimenta.html
formirovanie-avtonomnosti-v-rannem-vozraste.html