Тип исключения - Fault (ошибка).
Описание
Означает, что при переключении на задачу была обнаружена ошибка в TSS (как правило, в дескрипторах сегментов). В таблице 1 приведены условия генерации этого исключения:
Таблица 1. Условия недопустимого TSS
Поле индекса кода ошибки | Условие |
Селектор сегмента TSS | Предел сегмента TSS меньше, чем 67H для 32-разрядного TSS либо меньше, чем 2CH для 16-разрядного TSS. |
Селектор сегмента LDT | Недопустимая LDT или LDT не присутствует |
Селектор сегмента стека | Селектор ссылается на дескриптор вне дескрипторной таблицы |
Селектор сегмента стека | Сегмент стека не записываемый |
Селектор сегмента стека | У сегмента стека DPL ¹ CPL |
Селектор сегмента стека | У селектора сегмента стека RPL ¹ CPL |
Селектор сегмента кода | Селектор сегмента кода ссылается на дескриптор вне дескрипторной таблицы |
Селектор сегмента кода | Сегмент кода не является выполняемым |
Селектор сегмента кода | У несогласованного сегмента кода DPL ¹ CPL |
Селектор сегмента кода | У согласованного сегмента кода DPL > CPL |
Селектор сегмента данных | Селектор сегмента данных ссылается на дескриптор вне дескрипторной таблицы |
Селектор сегмента данных | Сегмент данных не читается |
Это исключение может генерироваться как в контексте старой задачи, пока проверяется её TSS, так и в контексте новой, при проверке и загрузке новой TSS.
Это исключение рекомендуется обрабатывать в отдельной задаче.
Код ошибки: содержит индекс селектора дескриптора сегмента, нарушившего условия защиты. Если флаг EXT установлен, то это значит, что исключение вызвано внешним событием, например, ошибка при переключении на обработчик внешнего прерывания, находящегося в отдельной задаче.
Указатель кода: сохранённые значения CS:EIP относятся к задаче, в которой произошло исключение и указывают на команду, вызвавшую это исключение.
Изменение состояния программы: зависит от ошибки. См. Section 6.3., "Task Switching".
Для новой задачи процессор сначала загружает регистры из TSS, а потом их по очереди проверяет. Если возникает ошибка, он генерирует это исключение, но остальные регистры остаются не проверенными.
Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |