Прерывания и особые ситуации: Код ошибки

Печать
Программирование - Архитектура и система команд микропроцессоров x86

 

При возникновении ряда особых ситуаций (см. таблицу 3.1.) процессор генерирует специальный код ошибки, этот код заносится в стек обработчика особой ситуации. Код ошибки похож на селектор сегмента, однако вместо поля RPL, он содержит два однобитных поля EXT и IDT (см. рис. 3.6.).

 

Формат кода ошибки

Рис. 3.6. Формат кода ошибки

 

В некоторых случаях код ошибки может быть нулевым или вообще отсутствовать.

Процессоры Intel486 и Intel386 помещают в стек код ошибки как 16-битное значение, но изменяют ESP на 4. Pentium и более поздние сохраняют 32-битное значение с нулевыми старшими битами. Код страничной ошибки (#PF) имеет специальный формат.