что такое немаскируемые прерывания?

Тема в разделе "WASM.ASSEMBLER", создана пользователем _hidden_, 7 июл 2005.

  1. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    собственно, сабж....

    НИГДЕ в литературе не объясняется что это за прерывание, откуда оно возникает и как его обрататывать... и надо ли??? обрабатывает ли например NMI windows?
     
  2. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    NMI -- прерывание, вопреки названию маскируемое (сам NMI и его источники -- средствами чиспсета, на уровне процессора -- перехватом обработчика), возникающее на всяческие, как правило, нехорошие ситуации (например, на SERR#). Естественно, аппаратно-зависимо.
     
  3. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    про то, что его можно замаскировать, я в курсе

    непонятно его назначение вообще... не могли бы вы привести парочку примеров?
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Примеры зависят от конкретной системы. На интелах, например, можно ловить NMI на IOCHK# и SERR#, куда входят ошибки паритета и target/master abort'ы на шине PCI.
     
  5. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    SUBJ пошёл с допотопных времен :) В Z80 был вход немаскируемых прерываний, на него вешали счетчик-таймер и можно было отсчитывать точные промежутки времени. Раньше NMI отключить програмно нельзя было.
     
  6. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    тогда такой вопрос - мне его смысл есть обрабатывать вообще? я пишу в protected mode демку.
     
  7. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    или просто iret поставить?
     
  8. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Ставь iret -- не прогадаешь. ;)
     
  9. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    Может лучше так:

    Код (Text):
    1. push eax
    2.  mov al,20h
    3.  out 0A0h,al    
    4.  out 20h,al          
    5.  pop eax
    6.  iret
     
  10. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    R_NEW



    NMI# не с PIC'a приходит, EOI посылать не надо.
     
  11. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    Я и сам так думаю, но встречал такой код реакции на NMI.