Вопрос про iSr

Тема в разделе "WASM.ASSEMBLER", создана пользователем rpy3uH, 17 апр 2007.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    я по поводу последней статьи
    Я так и не понял что обозначает регистр iSr. т.е. я понял что он обозначает - номер текущей линии аппаратного прерывания. Что если номер установленного бита обозначает номер линии. В как быть со значением неопределённого сбороса 20h, там же выставлены биты 4 и 5 (5, 6).
    раньше никогда не задумывался об этом, выводил в порты 20 и А0 значение 20, а теперь замешательство, что за биты и зачем.
     
  2. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Все верно, isr обозначает in-service routine, т.е. номер линии, чей обработчик в данный момент выполняется. А 0x20 действительно значение непоределенного сброса -- сбрасывает самый приоритетный установленный бит в isr, без указания его конкретного значения. Я только не помню, возможна ли ситуация, когда в isr установлено несколько бит. Кажется, возможна.
     
  3. sergh

    sergh New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    128
    Адрес:
    rsdn
    Возможна, если сброщен флаг IFи произошло более приоритетное (с точки зрения контроллера) прерывание. В этом случае текущая обработка прерывания прервётся, будет вызван обработчик нового прерывания.
     
  4. sergh

    sergh New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    128
    Адрес:
    rsdn
    Про внешние прерывания в общем http://sergh.pisem.net/protected/05_external_interrupts.html#IDAWOA1D
    Про ПКП i8259A http://sergh.pisem.net/protected/05_external_interrupts.html#IDAZBA1D

    Там, правда, я не употребляю слово ISR.