Прерывание 6 - Исключение недопустимого кода ( #UD - Invalid Opcode Exception )

Тип исключения - Fault (ошибка).
Описание
        Означает, что процессор совершал одно из следующих действий:
  •  
  • Попытка выполнить недопустимый или зарезервированный код.
  •  
  • Попытка выполнить команду с типом операнда, неприменимым к данной команде, например, операнд-источник для команды LSE не является адресом в памяти.
  •  
  • Попытка выполнить команду MMX, SSE или SSE2 на 32-разрядном процессоре, не поддерживающем эти технологии.
  •  
  • Попытка выполнить команду MMX, SSE или SSE2 (кроме команд PAUSE, PREFETCHh, SFENCE, LFENCE, MFENCE и CLFLUSH), когда установлен флаг EM в CR0.
  •  
  • Попытка выполнить команду SSE и SSE2, когда сброшен бит OSFXSR в CR4. Это не относится к следующим командам: MASKMOVQ, MASKMOVDQU, MOVNTQ, MOVNTDQ, MOVNTPD, MOVNTI, PREFETCHh, SFENCE, LFENCE, MFENCE и CLFLUSH или 64-разрядных версий команд PAVGB, PAVGW, PEXTRW, PINSRW, PMAXSW, PMAXUB, PMINSW, PMINUB, PMOVMSKB, PMULHUW, PSADBW, PSHUFW, PADDQ и PSUBQ.
  •  
  • Попытка выполнить команду SSE или SSE2 на 32-разрядном процессоре, который генерирует исключение плавающей точки SIMD при сбросе бита OSXMMEXCPT в CR4.
  •  
  • Выполнена команда UD2.
  •  
  • Обнаружен префикс LOCK в команде, которая не может быть заблокирована или может, но операнд назначения не является адресом памяти.
  •  
  • Попытка выполнить команду LLDT, SLDT, LTR, STR, LSL, LAR, VERR, VERW или ARPL в режиме реальных адресов или вируальном-8086 режиме.
  •  
  • Попытка выполнить команду RSM не в режиме SMM.

            В процессорах семейства P6 и Pentium 4, это исключение не генерируется при спекулятивном выполнении команд - только когда до них "дойдёт очередь".
            Коды D6 и F1 не определены и зарезервированы, но они не генерируют исключения.
            Команда UD2 предназначена для генерации этого исключения.
    Код ошибки: нет.
    Указатель кода: сохранённые значения CS:EIP указывают на команду, вызвавшую исключение.
    Изменение состояния программы: нет, т.к. команда, вызвавшая исключение, не выполнена.

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

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

    Hosted by uCoz