Тип исключения - Abort (авария).
Описание
Означает, что процессор обнаружил второе исключение, когда вызывал обработчик первого. Если процессор не может обработать эти исключения последовательно, он генерирует исключение двойной ошибки. Чтобы определить, когда процессор генерирует это исключение, исключения делятся на три класса: лёгкие (benign), способствующие (contributory) и страничные нарушения:
Таблица 1. Классы исключений и прерываний
Класс | Номер вектора | Описание |
Лёгкие исключения и прерывания | 1 | Отладка |
2 | Прерывание NMI | |
3 | Контрольная точка | |
4 | Переполнение | |
5 | Превышение границ BOUND | |
6 | Недопустимая команда | |
7 | Устройство не доступно | |
9 | Превышение сегмента сопроцессора | |
10h | Ошибка плавающей точки | |
11h | Контроль выравнивания | |
12h | Проверка аппаратуры | |
13h | Ошибка плавающей точки SIMD | |
Все | INT n | |
Все | INTR | |
Способствующие исключения | 0 | Ошибка деления |
0ah | Недопустимый TSS | |
0bh | Сегмент не присутствует | |
0ch | Ошибка стека | |
0dh | Общая защита | |
Страничные нарушения | 0eh | Страничное нарушение |
В таблице 2 показаны комбинации исключений, приводящих к исключению двойной ошибки. Программу или задачу, вызвавшую такое исключение нельзя продолжить. Это исключение предназначено для сбора информации о состоянии системы и корректного (по возможности) завершения программы (задачи) или всей системы.
Таблица 2. Условия генерации исключения двойной ошибки
Первое исключение | Второе исключение | ||
Лёгкое | Способствующее | Страничное нарушение | |
Лёгкое | Последовательная обработка | Последовательная обработка | Последовательная обработка |
Способствующее | Последовательная обработка | Двойная ошибка | Последовательная обработка |
Страничное нарушение | Последовательная обработка | Двойная ошибка | Двойная ошибка |
Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |