Прерывания и особые ситуации: Реальный режим |
Программирование - Архитектура и система команд микропроцессоров x86 | |||
В режиме реальной адресации поддерживается гораздо меньше прерываний и особых ситуаций, чем в защищенном режиме (см. Таблицу 3.1). Их обработка в современных процессорах производится совершенно аналогично тому, как это делалось в процессоре 8086. Специальная таблица (см. рис. 3.1.), называемая таблицей векторов прерываний (Interrupt Vector Table – IVT) или просто таблицей прерываний, размещается в памяти по нулевому адресу (по умолчанию). Каждому вектору прерывания или особой ситуации в этой таблице соответствует 32-битное поле, которое содержит дальний указатель на процедуру обработчик. Процессор автоматически выбирает из памяти соответствующий указатель при поступлении прерывания или генерации особой ситуации, затем сохраняет в стеке текущие значения FLAGS, CS, IP, очищает биты IF, TF, AC регистра FLAGS и передает управление по считанному адресу (см. рис. 3.2.).
Рис. 3.1. Таблица векторов прерываний в реальном режиме работы
Рис. 3.2. Стек после вызова прерывания или особой ситуации в реальном режиме работы
Начальный адрес таблицы векторов прерываний по умолчанию устанавливается нулевым. Но в процессорах, начиная с Intel286, он может быть переопределен путем программирования регистра IDTR с помощью команды LIDT. На практике для сохранения совместимости с программным обеспечением процессоров 8086/8088 такое переопределение обычно не использовалось. Если при обработке поступившего запроса на прерывание при записи значений в стек процессор превышает предел стекового сегмента, то согласно документации Intel должно генерироваться прерывание 12. Однако на практике некоторые модели процессоров в такой ситуации могут вести себя иначе. Когда при поступлении запроса на прерывание значение в регистре стека (E)SP равно 1, 3 или 5, возможна полная остановка процессора (переход в режим останова, аналогично тому, как это происходит по команде HLT).
|
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru