-
Notifications
You must be signed in to change notification settings - Fork 1
[ЭКЗАМЕН 30] Срабатывание прерывания. Обработчик прерывания в реальном режиме. Возврат из обработчика прерывания.
- Сохранение в текущий стек регистра флагов и адреса возврата (адреса следующей команды)
- Передача управления по адресу обработчика из таблицы векторов
- Настройка стека (возможно, обработчику прерываний нужен свой стек, потому что стек остается связан с той программой, которая работала до срабатывания прерывания; если обработчик сложный, то иногда такие обработчики перенастраивают стек)
- Повторная входимость (реентерабельность), необходимость запрета прерываний (Кузнецов: "таймер тикает, срабатывают прерывания. В какой-то момент прерывание тика таймера не успевает отработать до след тика, вызывается еще раз тоже прерывание и нужно обеспечить корректную работу в такой ситуации"; запрет прерывания можно делать только на короткий срок, иначе можно потерять данные (переполнение буфера клавиатуры, например))
Располагается в самом начале памяти, начиная с адреса 0. Доступно 256 прерываний. Каждый вектор занимает 4 байта - полный адрес. Размер всей таблицы - 1 Кб.
IRET - используется для выхода из обработчика прерывания. Восстанавливает FLAGS, CS:IP. При необходимости выставить значение флага обработчик меняет его значение непосредственно в стеке.
Следующий вопрос: Процессор 80386. Разрядность, регистры.
Предыдущий вопрос: Прерывания. Назначение, виды прерываний. Таблица векторов прерываний.
Меня всегда можно найти в Telegram: @mrrvz
-
Выполнение программы. Машинный код. Исполняемые файлы. Язык ассемблера.
-
Виды переходов. Условные, безусловные переходы. Короткий, ближний, дальний переход.
-
Стек. Регистры, связанные со стеком. Команды записи/извлечения из стека.
-
Стек. Использование при вызове подпрограмм. Команды вызоваподпрограммы и возврата.
-
Прерывания. Назначение, виды прерываний. Таблица векторов прерываний.
-
Срабатывание прерывания. Обработчик прерывания в реальном режиме. Возврат из обработчика прерывания.
-
Модели памяти в защищённом режиме. Регистры управления памятью. Страничное преобразование.
-
Математический сопроцессор. Типы данных. Представление вещественных чисел.