Модель памяти реального режима

В реальном режиме диапазон изменения адреса от 0 до 1 Мбайт. Эта величина определяется шиной адреса процессора i8086 – 20 линий. А максимальный размер сегмента 64 Кбайт, что связано с 16-разрядной архитектурой этого процессора.

Логический адрес формируется из сегмента и смещения в таком виде: [сегмент: смещение]. Для обращения к конкретному адресу необходимо определить адрес начала сегмента (16-битное значение), поместив его в один из сегментных регистров, а также смещение внутри этого регистра. Смещение определяется в регистрах общего назначения и также является 16-разрядным. Механизм получения физического адреса в реальном режиме представлен на рис. 4.3.

Рис. 4.3. Получение физического адреса в реальном режиме
работы процессора.

Схема преобразования адреса реального режима не позволяет адресовать больше 1 Мбайта памяти (рис. 4.4).

Рис. 4.4. Адресация памяти в MS-DOS.

Несмотря на то, что программы используют логические, а не физические адреса, преобразователь адреса реального режима позволяет программам легко сконструировать логический адрес для любого нужного ей физического адреса (рис. 4.5). В этом смысле можно говорить о возможности физической адресации памяти в реальном режиме. Другими словами, для программы, работающей под управлением MS-DOS, доступна вся память, включая системные области BIOS, вектор прерываний и т.д., что сказывается на надежности всей операционной системы.

Рис. 4.5. Преобразование логического адреса в физический.

Недостатки организации памяти реального режима:

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

à сегменты имеют максимальный размер 64 Кбайт;

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: