Модель памяти реального режима
В реальном режиме диапазон изменения адреса от 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 Кбайт;
à сегменты могут перекрываться друг другом.
Дата добавления: 2020-02-05; просмотров: 480;