ExceptProps

ExceptProps struc
    Interrupt BYTE ?
    Mnemonic  CHAR 4 dup(?)
    Cause     BYTE ?
    Flags     WORD ?
ExceptProps ends
LPExceptProps TYPEDEF PTR ExceptProps

Cтруктура с кратким описанием свойств вектора прерываний.
  • Interrupt - номер вектора прерывания.
    Возможно одно из следующих значений.
    curr_id=0
    enum E_DIVIDE_BY_ZERO_ERROR
    enum E_DEBUG
    enum E_NON_MASKABLE_INT
    enum E_BREAKPOINT
    enum E_OVERFLOW
    enum E_BOUND_RANGE
    enum E_INVALID_OPCODE
    enum E_DEVICE_NOT_AVAILABLE
    enum E_DOUBLE_FAULT
    enum E_COPROCESSOR_SEG_OVER
    enum E_INVALID_TSS
    enum E_SEGMENT_NOT_PRESENT
    enum E_STACK
    enum E_GENERAL_PROTECTION
    enum E_PAGE_FAULT
    enum E_RESERVED
    enum E_X87_EXCEPT_PENDING
    enum E_ALIGNMENT_CHECK
    enum E_MACHINE_CHECK
    enum E_SIMD_FLOATING_POINT
    curr_id=30
    enum E_SECURITY_EXCEPTION
    curr_id=32
    enum E_EXTERNAL_INTS
  • Mnemonic - строка содержащая короткое имя прерывания.
  • Cause - байт содержащий код обычной причины исключения.
    Возможно одно из следующих значений.
    curr_id=0
    enum C_DIV_IDIV_INSTRUCTIONS - деление на ноль.
    enum C_INSTR_OR_DATA_ACCESS - обращение к инструкциям или данным.
    enum C_EXTERNAL_NMI_SIGNAL - внешний не маскируемый сигнал.
    enum C_INT3_INSTR - исключение при выполнении инструкции int 3.
    enum C_INTO_INSTR - исключение при выполнении инструкции into.
    enum C_BOUND_INSTR - исключение при выполнении инструкции bound.
    enum C_INVALID_INSTRS - не правильный опкод.
    enum C_X87_INSTRUCTIONS - x87 инструкция.
    enum C_INT_DURING_AN_INT - исключение во время обработки исключения.
    enum C_RESERVED - резервировано.
    enum C_TSS_ACCESS_AND_SWITCH - переключение задач или обращение к сегменту TSS.
    enum C_ACCESS_THROUGH_AN_LSD - доступ к сегменту через дескриптор.
    enum C_SS_LOADS_AND_SS_REFS - загрузка регистра SS или использование его для обращения к памяти.
    enum C_MEM_ACCESS_AND_PCHECK - доступы к памяти или проверка безопасности.
    enum C_PAGING_MEM_ACCESS - доступы к страницам памяти.
    curr_id=16
    enum C_X87_AND_MEDIA64_INSTR - x87 инструкция или медиа MMX.
    enum C_MEM_ACCESS - обращение к не выровненным данным.
    enum C_MODEL_SPECIFIC - зависит от модели.
    enum C_MEDIA128_INSTR - 128-битные медиа инструкции, работающие с числами FPU.
    curr_id=30
    enum C_SECURE_EVENT_IN_HOST
    curr_id=32
    enum C_EXT_INT_SIGNAL - внешнее прерывание.
  • Flags - набор флагов определяющих свойства прерывания. Младшие три бита определяют уровень приоритета. От самого высокого нулевого до самого низкого седьмого.

    Следующие флаги используются.
    curr_id=3
    enf       SRC_SOFTWARE,SRC_INTERNAL,      SRC_EXTERNAL,     TYPE_FAULT
    enf          TYPE_TRAP,  TYPE_ABORT,           PRECISE,    NOT_PRECISE
    enf CLASS_CONTRIBUTORY,CLASS_BENIGN,GENS_BY_GEN_INSTRS,RESERVED_VECTOR

    SRC_SOFTWARE        - программный источник
    SRC_INTERNAL        - внутренний источник
    SRC_EXTERNAL        - внешний источник
    TYPE_FAULT          - исключение промах.
    TYPE_TRAP           - исключение ловушка.
    TYPE_ABORT          - абортивное исключение.
    PRECISE             - точное исключение.
    NOT_PRECISE         - не точное.
    CLASS_CONTRIBUTORY  - содействует двойному исключению
    CLASS_BENIGN        - благоприятствует двойному исключению.
    GENS_BY_GEN_INSTRS  - генерируется обычными инструкциями.
    RESERVED_VECTOR     - резервный вектор.

  • Сайт управляется системой uCoz