Прерывание 7 - Устройство не доступно ( #NM - Device Not Available Exception )

Тип исключения - Fault (ошибка).
Описание
        Означает возникновение одного из следующих условий:
  •  
  • Процессор выполнил команду плавающей точки x87 FPU при установленном флаге EM в регистре CR0.
  •  
  • Процессор выполнил команду WAIT/FWAIT, когда установлены флаги MP и TS в CR0 (не зависимо от флага EM).
  •  
  • Процессор выполнил команду плавающей точки x87 FPU, MMX, SSE или SSE2 (кроме PAUSE, PREFETCHh, SFENCE, LFENCE, MFENCE и CLFLUSH), когда установлен флаг TS в CR0, а флаг EM - сброшен.

            Флаг EM устанавливается, когда процессор не имеет внутреннего x87 FPU. В таком случае, попытка выполнить команду плавающей точки будет генерировать это исключение и таким образом можно программно эмулировать x87 FPU.
            Флаг TS показывает, что было переключение задач и контекст x87 FPU, MMX и регистр MXCSR хранят значения, используемый в предыдущей задаче. Генерация исключения при установленном флаге TS и сброшенном EM позволяет сохранить состояние x87 FPU или MMX предыдущей задачи и загрузить новое для текущей задачи.
            Флаг MP в CR0 используется вместе с TS чтобы определить, надо ли генерировать исключение при попытке выполнения команды WAIT или FWAIT. Флаг MP предназначен для использования в процессорах Intel286 и Intel386 DX. Для процессоров Pentium 4, семейства P6, Pentium или Intel486 DX флаг MP должен быть всегда установлен; для Intel486 SX - всегда сброшен.
    Код ошибки: нет.
    Указатель кода: сохранённые значения CS:EIP указывают на команду, сгенерировавшую исключение.
    Изменение состояния программы: нет, т.к. команда была не выполнена. Если флаг TS установлен, то обработчик должен сохранить контекст x87 FPU, сбросить флаг TS и возобновить выполнение команд.

    Вопросы? Замечания? Пишите: sasm@narod.ru

      Copyright © Александр Семенко.
    TopList

    Hosted by uCoz