- •8. Прерывания и исключения
- •Прерывания и исключения защищенного режима
- •Приоритеты событий, вызывающих прерывания
- •Обработка прерываний в реальном режиме
- •Обработка прерываний в защищенном режиме
- •Возможности последовательной обработки исключений различных классов
- •Условия недостоверности сегмента tss
- •Приоритеты sse-исключений операций с плавающей точкой
- •Виртуальные прерывания в режиме виртуального 8086
- •Варианты обработки прерываний в режиме виртуального 8086
- •Обработка прерываний с использованием idt (защищенный режим)
- •Обработка прерываний с помощью таблицы векторов прерываний (реальный режим).
- •Обработка прерываний с использованием признаков viFиVip
Прерывания и исключения защищенного режима
|
№ |
Мнемоника |
Описание |
Способ обслужив. |
Код ошибки |
Класс | |
|
0 |
#DE |
Ошибка деления |
Fault |
Нет |
C | |
|
1 |
#DB |
Отладка |
Fault / Trap |
Нет |
B | |
|
2 |
|
Сигнал NMI |
|
Нет |
B | |
|
3 |
#BP |
Инструкция INT3(программный останов) |
Trap |
Нет |
B | |
|
4 |
#OF |
Переполнение (инструкция INTO) |
Trap |
Нет |
B | |
|
5 |
#BR |
Нарушение границы (инструкция BOUND) |
Fault |
Нет |
B | |
|
6 |
#UD |
Недействительный код операции |
Fault |
Нет |
B | |
|
7 |
#NM |
FPUнедоступен |
Fault |
Нет |
B | |
|
8 |
#DF |
Двойная ошибка |
Abort |
Да(ноль) |
| |
|
9 |
|
Резервировано |
|
Нет |
| |
|
10 |
#TS |
Недействительный сегмент TSS |
Fault |
Да |
C | |
|
11 |
#NP |
Отсутствие сегмента |
Fault |
Да |
C | |
|
12 |
#SS |
Ошибка при обращении к стеку |
Fault |
Да |
C | |
|
13 |
#GP |
Нарушение общей защиты |
Fault |
Да |
C | |
|
14 |
#PF |
Отказ страницы |
Fault |
Да |
P | |
|
15 |
|
Резервировано |
|
Нет |
| |
|
16 |
#MF |
Исключение FPU |
Fault |
Нет |
B | |
|
17 |
#AC |
Ошибка выравнивания |
Fault |
Да(ноль) |
B | |
|
18 |
#MC |
Машинный контроль |
Abort |
Нет |
B | |
|
19 |
#XM |
Исключение SSE |
Fault |
Нет |
B | |
|
20-31 |
|
Резервировано |
|
|
| |
|
32-255 |
|
Прерывания пользователя |
|
|
B | |
Ловушка- это исключение, которое выявляется после выполнения инструкции. Примером ловушки может служить инструкция INTO, которая реализует исключение с номеромn=4 в случае, если в регистреEFLAGSзначение признака переполненияOF=1. При обслуживании ловушки в качестве адреса возврата сохраняется адрес инструкции, следующей за инструкцией, вызвавшей данное исключение.
Ошибки и ловушки предусматривают продолжение нормального выполнения программы после завершения их обслуживания.
Отказсообщает о возникновении серьезных нарушений в работе системы. Примером такого нарушения может быть неисправность аппаратуры или возникновение исключения при обслуживании ранее поступившего запроса. Отказ не предусматривает продолжение выполнения прерванной программы, поэтому при его возникновении обычно производится повторный запуск (Restart) процессора.
Если одновременно произошло несколько событий, требующих обслуживания с помощью механизма прерываний, то процессор обрабатывает такие события последовательно в соответствии с их приоритетами, которые указаны в табл. $.2 (1 – высший приоритет, 8 - низший).
Таблица $.2
