Микропроцессоры фирмы Intel, начиная с i80286 и до последних включительно, способны работать в двух основных режимах: защищенном и реальном. В реальном режиме возможности микропроцессора существенно ограничиваются: сокращается до 1 Мбайт объем адресуемой памяти, исключаются основные механизмы защиты, не реализуется страничная организация памяти и многозадачное функционирование системы. Наиболее полно возможности микропроцессоров реализуются при работе в защищенном режиме.
Наиболее полно возможности микропроцессоров реализуются при работе в защищенном режиме: обеспечивается физическая адресация памяти объемом до 236 = 64 Гбайт и доступ к виртуальной памяти объемом до 64 Тбайт. Кроме того, обеспечивается защита пользовательских программ друг от друга и от операционной системы, предотвращающая несанкционированное вмешательство в их работу. В защищенном режиме используется, защита памяти, сегментация памяти, страничная организация памяти, многозадачность. Помимо сегментации памяти в защищенном режиме может быть реализована ее страничная организация. Этот режим позволяет использовать дополнительные команды, введенные для поддержки многозадачных операционных систем, и позволяет более экономно использовать оперативную память в мультипрограммном режиме.
Переключение процессора в защищенный режим осуществляется программным путем записью единицы в бит PE (0-й разряд регистра процессора CR0 (MSW)) с помощью команды MOV или LMSW. Обратный переход в реальный режим теперь возможен только с помощью команды MOV записью в бит PE нуля. Перед переключением процессора в защищенный режим необходимо, в реальном режиме, в оперативной памяти создать GDT, LDT, IDT, загрузить в регистры процессора необходимую для работы в защищенном режиме управляющую информацию, так как без этого переключение процессора в защищенный режим не имеет смысла.
Переключение процессоров из реального в защищенный режим.
Все процессоры Intel начиная с i80286 и до последних включительно по включению электропитания (после начального «сброса») работают в режиме реального адреса (реальном режиме). Обычно реальный режим используется либо как промежуточный для перехода в защищенный режим после инициализации микропроцессорной системы, либо для более быстрого выполнения программ, написанных для микропроцессоров 8086, 80186, но, по сравнению с 8086, 80186, современные микропроцессоры в реальном режиме имеют более широкий набор выполняемых команд и возможность обработки 32-разрядных операндов.
Переключение процессора в защищенный режим из реального осуществляется загрузкой в CR0 (MSW) на рис. 1 слова с единичным значением бита РЕ (Protect Enable). До переключения в памяти должны быть проинициализированы необходимые таблицы дескрипторов IDT, LDT и GDT. Сразу после включения защищенного режима процессор имеет CPL = 0.
Рис. 1
Для всех процессоров рекомендуется выполнять следующую последовательность действий для переключения в защищенный режим:
Переключение процессора из защищенного режима в реальный.
Переключение процессора из защищенного режима в реальныйвозможно не только через аппаратный сброс, как это было у 80286, но и сбросом бита РЕ в CR0. При этом для корректного перехода, согласно документации на процессоры, должны выполняться следующие действия:
После этого загружаются остальные регистры. Процессор теперь работает в реальном режиме, по умолчанию с 16-разрядными адресами и данными.