Тип исключения - Fault (ошибка).
Описание
Возникает при одном из следующих условий:
Обнаружено нарушение предела стека при ссылке на регистр SS в явном виде (например, MOV AX, [BP+6] или MOV AX, SS:[EAX+6]) или в не явном (команды POP, PUSH, CALL, RET, IRET, ENTER и LEAVE).
| Загрузке селектора неприсутствующего сегмента в SS из TSS при переключении задач, вызове или возврате на другой уровень привилегий, команды LSS, а также команд MOV с SS как операндом и POP SS.
| |
Устранение ошибки заключается в расширении сегмента стека (если нарушен предел) либо в загрузке его в память (если сегмент не присутствует).
Код ошибки: содержит селектор сегмента, вызвавшего нарушение, если исключение произошло при вызове на другой уровень привилегий. Если это просто нарушение предела текущего сегмента стека, то код ошибки равен 0.
Указатель кода: сохранённые значения CS:EIP обычно указывают на команду, сгенерировавшую исключение. Если исключение произошло при переключении задач, CS:EIP указывают на текущую команду новой задачи.
Изменение состояния программы: нет, т.к. исключение возникает до выполнения команды.
Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |