Операционная система: MS-DOS 3+ Среда: Borland TASM (Assembler)
Введение Начиная с 80286, процессоры Intel получили возможность работать в защищенном режиме (ранние процессоры работали только в реальном режиме). Для совместимости со старыми программами, все процессоры стартуют в реальном режиме после сброса. Далее будут представлены основные отличия между реальным, защищенным и виртуальным режимами. Заметьте, что для краткости мы будем их называть RM, PM, VM86, соответственно. Существует множество особенностей у этих режимов при адресации памяти, в наборе процессорных инструкций, их привилегий, а также работе с прерываниями. Защищенный режим поддерживает многозадачность, а виртуальный режим работает только под управлением защищенного. Адресация памяти и страницы памяти В любом режиме инструкции определяют смещение и сегмент адресуемой памяти. Например: mov ax, es:[bx+si+1] - сегмент es, смещение bx+si+1 push si - сегмент ss, смещение sp-2 Инструкции сами по себе адресуются сегментом cs и смещением ip. Затем адрес переводится в линейный, а затем в физический, который воспринимается процессором.
В реальном и виртуальном режимах базовый адрес равен сегмент * 10h; В защищенном базовый адрес определяется в таблице дескрипторов (GDT или LDT) и может иметь любое значение. Значение в сегментном регистре называется "селектор" и его биты 15-3 определяют смещение в LDT или GDT (смещение кратно 8), бит 2 равен 0 для GDT или 1 для LDT, биты 1-0 определяют RPL (привилегии). Если не используется страничное отображение памяти, то физический адрес равен линейному. Иначе, младшие 12 бит линейного адреса определяют физический, а остальные используются как индекс для двухуровневой таблицы страниц (первые биты 31-22 определяют директорию страницы, а остальные биты 21-12 определяют страницу) . Использование страниц памяти может также ограничивать доступ к некоторым страницам (для непривилегированного кода предоставляется доступ только для чтения или вообще закрывается), определять несуществующие страницы, которые определяют физические адреса или сделать память прозрачной для программ, которые обращаются к линейным адресам. Кстати, пространство, которое адресуется линейно, равно 4 Гб для 386+, и, возможно, не существует систем с таким количеством памяти, поэтому страничное отображение памяти позволяет системе симулировать память такого размера. Сегмент имеет также ограничение. Изначально ограничение равно 0FFFFh для всех сегментных регистров и не может быть изменено в реальном и виртуальном режимах. В защищенном режиме ограничение определяется значением в GDT или LDT. В процессоре 286 в защищенном режиме ограничение равно 0FFFFh, а в 386+ расширено до 0FFFFFFFFh.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.