Assembler для начинающих


         

Клавиатура - часть 3


      6     Дискета
      7     Принтер
    --------------------------------------------------
      Фиг. 8.3 Уровни прерываний для микросхемы 8259
 
    управлении прерываниями должна принимать участие и ваша программа;
    именно, она должна сообщить контроллеру 8259 о том, что она
    закончила работу с текущим прервавшим устройством. Такая команда
    называется EOI (конец прерывания), она сообщает микросхеме 8259,
    что обработка прерывания от устройства с наивысшим приоритетом
    закончилась, и теперь вызвать прерывание в системе может устройство
    с более низким приоритетом.
 
      Контроллер 8259 также предотвращает прерывание микропроцессора
    устройством с более низким приоритетом, если система в этот момент
    обслуживает прерывание с более высоким приоритетом. Микросхема 8259
    запоминает текущее активное прерывание, и считает, что
    микропроцессор обслуживает это прерывание до тех пор, пока не
    получит команду EOI. Микросхема 8259 делает это с помощью двух
    внутренних регистров. Первый из них идентифицирует устройства,
    которые к настоящему моменту выдали запрос на прерывание; этот
    регистр называется регистром запросов прерываний IRR. Другой
    регистр следит за текущими обслуживаемыми прерываниями, и
    называется регистром обслуживаемых прерываний ISR. Если вы забыли
    выполнить команду EOI, микропроцессор сможет прерывать только
    программы обработки прерываний от устройств с боле высоким
    приоритетом. Если вы не выполнили команду EOI после прерывания от
    таймера, система попадает в останов. Так как таймер имеет наивысший
    приоритет, отсутствие завершения его прерывания блокирует
    возбуждение всех других прерываний.
 
      Контроллер 8259, кроме того, упорядочивает все прерывания. Это
    означает, что контроллер заставляет микропроцессор правильно
    выбирать обработчик прерываний. Когда контроллер распознает
    прерывание, он вынуждвет микропроцессор 8088 начинать работу по
    адресу, указанному в одном из 256 векторов прерываний в первом



Содержание  Назад  Вперед