ФЭНДОМ


Инициализация программируемого контроллера прерываний

Ниже представлен фрагмент кода, осуществляющий инициализацию обоих контроллеров 8259. Ведущий контроллер настраивается на использование режима специальной полной вложенности, ведомый — на использование обычного режима полной вложенности. Для обоих контроллеров устанавливается режим специального маскирования прерываний и чтение регистров ISR. Все запросы прерываний принимаются по фронту сигналов на линиях IRQ.

        mov    al, 11h       ; ICW1 - начало инициализации контроллеров
        out    20h, al
        out    0A0h, al        
        mov    al, 20h       ; ICW2 - базовые номера векторов
        out    21h, al
        mov    al, 28h
        out    0A1h, al
        mov    al, 04h       ; ICW3 для ведущего контроллера - битовая маска
        out    21h, al       ; линий, на которых "висят" ведомые контроллеры
        mov    al, 02h       ; ICW3 для ведомого контроллера - номер линии
        out    0A1h, al      ; ведущего, к которой подсоединён ведомый
        mov    al, 11h       ; ICW4 - режим специальной полной вложенности
        out    21h, al       ; для ведущего контроллера
        mov    al,01h        ; ICW4 - режим обычной полной вложенности для
        out    0A1h, al      ; ведомого контроллера
        mov    al, 0         ; Все запросы воспринимаются по фронту сигналов
        mov    dx, 04D0h
        out    dx, al
        inc    dx
        out    dx, al
        mov    al, 6Bh       ; Установка режимов чтения ISR и специального мас-
        out    20h, al       ; кирования
        out    0A0h, al
Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.