Сбой типа "неверный TSS" генерируется при попытке переключения задачи на сегмент с неверным TSS. TSS является неверным в случаях, описанных в Таблице 9-5. Код ошибки помещается в стек обработчика исключений, что помогает идентифицировать причину сбоя. Бит EXT указывает, что исключение было вызвано условием вне управления программы (например, внешнее прерывание, используя шлюз задачи, попыталось выполнить переключение задачи на неверный TSS).
Таблица 9-5. Условия неверного TSS-----------------------------------------------------------------Индекс кода ошибки Описание----------------------------------------------------------------- Сегмент TSS Граница сегмента TSS меньше 67H Сегмент LDT Неверная LDT или LDT не присутствует Сегмент стека Селектор сегмента стека превышает границу таблицы дескрипторов Сегмент стека Сегмент стека не доступен для записи Сегмент стека DPL сегмента стека не совместим с CPL Сегмент стека RPL селектора сегмента стека не совместим с CPL Сегмент кода Селектор сегмента кода превышает границу таблицы дескрипторов Сегмент кода Сегмент кода не является выполняемым Сегмент кода DPL не-конформного сегмента кода не равен CPL Сегмент кода DPL конформного сегмента кода больше CPL Сегмент данных Селектор сегмента данных превышает границу таблицы дескрипторов Сегмент данных Сегмент данных не доступен для чтения-----------------------------------------------------------------
Данный сбой может происходить как в контексте исходной задачи, так и в контексте новой задачи. До тех пор, пока процессор полностью не убедится в присутствии нового TSS, исключение происходит в контексте исходной задачи. Как только присутствие нового TSS будет подтверждено, переключение задачи считается завершенным, т.е. регистр TR загружен селектором нового TSS, и если переключение задачи является следствием CALL или прерывания, то поле Компоновки нового TSS будет содержать ссылку на старый TSS. Любые ошибки, обнаруженные процессором после этой точки, обрабатываются в контексте новой задачи.
Чтобы гарантировать доступность TSS для обработки исключения, обработчик исключения типа "неверный TSS" должен вызываться как задача посредством шлюза задачи.