December 11 2017 07:51:06
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

По умолчанию в реальном режиме используются 16-разрядные операнды и адреса. При использовании префиксов можно обрабатывать 32-разрядные операнды и формировать 32-разрядные адреса. Однако, если эти адреса выходят за пределы границ сегмента (64 Кбайт) или адресуемой памяти (1 Мбайт), то реализуется исключение типа #GP.

При осуществлении ряда типов исключений в реальном режиме имеются отличия от защищенного режима. Исключения типа #TS, #NP, #PF, #AC не реализуются в реальном режиме. Исключение #GP в реальном режиме осуществляется при выходе за границу сегмента.

img032

Отметим, что в памяти системы должны быть зарезервированы две области, необходимые для обеспечения реального режима. Первые 1024 ячейки памяти (адреса от 0000h до 03FFh) резервируются в реальном режиме для размещения векторов прерываний. Последние 16 ячеек памяти (адреса от FFFFFFF0h до FFFFFFFFh) резервируются для программы инициализации системы. После включения процессора программа инициализации автоматически вводит его в реальный режим. Аналогичная процедура выполняется и после поступления сигнала сброса. Перейти из реального в защищенный режим можно с помощью команд MOV или LMSW, загружающих в регистр CR0 слово состояния с установленным битом защиты РЕ = 1. Перед этим в реальном режиме должна быть проведена загрузка необходимых регистров (GDTR, LDTR, и др.) и таблиц (GDT, LDT и др.), используемых в защищенном режиме.

Обратное переключение из защищенного в реальный режим выполняется только командой MOV, загружающей в регистр CR0 слово, которое имеет значение бита РЕ = 0 (команда LMSW не может устанавливать значение РЕ = 0). Предварительно необходимо провести некоторые подготовительные процедуры, обеспечивающие сохранение правильного функционирования процессора при переходе к реальному режиму: отключить механизм страничной трансляции, перейдя к использованию линейных адресов, равных физическим; установить для всех сегментов размер 64 Кбайт и ряд других. После выполнения команды MOV, устанавливающей в регистре CR0 бит РЕ = 0, следует перейти к программе, выполняемой в реальном режиме, с помощью команды межсегментного перехода JMP, которая очищает очередь команд. Затем в сегментные регистры загружается новое содержимое, обеспечивающее формирование физических адресов в реальном режиме (см. рис. 2.55).

2.8. РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ

При работе микропроцессорной системы часто возникают ситуации, когда требуется прервать выполнение текущей программы и перейти к подпрограмме, обеспечивающей необходимую реакцию системы на создавшиеся обстоятельства. Такие ситуации называются прерываниями или исключениями в зависимости от причин, вызывающих их возникновение. Специальные виды таких прерываний реализуются при отладке программ, для чего в состав процессора введены необходимые функциональные блоки, работа которых контролируется с помощью регистров отладки DR7-0.

Особенно большое значение для современных процессоров и систем, реализуемых на их основе, имеют тестирование и самотестирование. Процессоры семейства Р6 содержат ряд средств, которые обеспечивают выполнение данных процедур.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,294,974 уникальных посетителей