Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 73 стр.

UptoLike

Составители: 

записью в ПКП при АО=1 соответствующего байта. Маску можно
прочитать по тому же адресу, то есть при АО=1.
Пример 3 составить маску для только что рассмотренного
примера 2 таким образом, чтоб разрешить прерывание только по
запросам IRQO и IRQ6:
Ответ: Составляем слово маски, «закрывая» все, кроме D6, D0:
D7 D6 D5 D4 D3 D2 D1 D0
┌───┬───┬───┬───┬───┬───┬───┬───┐
Маска: 1 0 1 1 1 1 1 0
└───┴───┴───┴───┴───┴───┴───┴───┘
└───────────┘ └───────────┘
Н-код = B E
Составим фрагмент программы маскирования ПКП с адресами
выборки из примера 2:
MOV DX,00F1 ; адрес ПКП для АО=1 в DX;
MOV AL,BE ; маску BE (IRQ 0, IRQ 6 — разрешить) в AL,
OVT DX,AL ; а затем оттуда в ПКПв регистр маски.
ПримечаниеВ начале работы, в момент подачи питания на ПКП
все IRQ демаскируются, все разряды РЗП и РОЗП сбрасываются в «0» и
устанавливается исходный приоритет: IRQ 0 высший, IRQ 7
низший (дно).
Следующий элемент архитектуры ПКП (рисунок 10) называется:
«Схема каскадирования». Он выполняет функции расширителя числа
запросов на прерывание. Дело в том, что если не хватает 8 входов IRQ, то
микросхемы можно каскадировать до 8 штук, и число векторов
довести до 8 x 8 = 64.
На практике такое редко встречается, а вот каскад из двух ПКП
реализован в IBM PC/АТ. Как это делается в данном пособии не
рассматривается. Это совершенно не принципиальный вопрос, а скорее
узкотехнический.
А теперь обратимся к программированию ПКП. Некоторые
элементы этого процесса уже были представлены в примерах 2 и 3. Но в
целом процесс программирования ПКП достаточно сложен и состоит из
трех блоков.
1) блок инициализации (настройка режима и загрузка векторов и
шага векторов);
2) блок команд окончания (завершения) прерывания;
3) блок команд обработки по опросу (без сигнала INT).
Чтобы иметь возможность работы с контроллером по минимуму,
необходимо знать:
а) как накладывать маску (или прочитать ее);
б) как завершать прерывание (частный случай: команда 20 при
А0=0).
73
записью в ПКП при АО=1 соответствующего байта. Маску можно
прочитать по тому же адресу, то есть при АО=1.
          Пример 3 — составить маску для только что рассмотренного
     примера 2 таким образом, чтоб разрешить прерывание только по
     запросам IRQO и IRQ6:
     Ответ: Составляем слово маски, «закрывая» все, кроме D6, D0:

                D7    D6      D5    D4   D3    D2    D1     D0
             ┌───┬───┬───┬───┬───┬───┬───┬───┐
     Маска: │ 1        0       1    1     1     1     1      0 │
             └───┴───┴───┴───┴───┴───┴───┴───┘
                └───────────┘              └───────────┘
     Н-код      =            B              E
           Составим фрагмент программы маскирования ПКП с адресами
     выборки из примера 2:
     MOV DX,00F1 ; адрес ПКП для АО=1 в DX;
     MOV AL,BE           ; маску BE (IRQ 0, IRQ 6 — разрешить) в AL,
     OVT DX,AL           ; а затем оттуда в ПКП — в регистр маски.
           Примечание – В начале работы, в момент подачи питания на ПКП
     все IRQ демаскируются, все разряды РЗП и РОЗП сбрасываются в «0» и
     устанавливается исходный приоритет: IRQ 0 — высший, IRQ 7 —
     низший (дно).
           Следующий элемент архитектуры ПКП (рисунок 10) называется:
     «Схема каскадирования». Он выполняет функции расширителя числа
     запросов на прерывание. Дело в том, что если не хватает 8 входов IRQ, то
     микросхемы можно каскадировать — до 8 штук, и число векторов
     довести до 8 x 8 = 64.
           На практике такое редко встречается, а вот каскад из двух ПКП
     реализован в IBM PC/АТ. Как это делается — в данном пособии не
     рассматривается. Это совершенно не принципиальный вопрос, а скорее
     узкотехнический.
     А теперь обратимся к программированию ПКП. Некоторые
элементы этого процесса уже были представлены в примерах 2 и 3. Но в
целом процесс программирования ПКП достаточно сложен и состоит из
трех блоков.
           1) блок инициализации (настройка режима и загрузка векторов и
     шага векторов);
     2) блок команд окончания (завершения) прерывания;
     3) блок команд обработки по опросу (без сигнала INT).
     Чтобы иметь возможность работы с контроллером по минимуму,
необходимо знать:
     а) как накладывать маску (или прочитать ее);
     б) как завершать прерывание (частный случай: команда 20 при
А0=0).

                                                                           73