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

UptoLike

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

Формат первой команды обслуживания прерываний OCW1,
которая при чтении позволяет получить состояние маски, а при
записиналожить маску на прерывания, выглядит так:
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 M7 M6 M5 M4
M3
M2 M1 M0
Единичное значение одного из битов М0 —М7 означает, что
прерывания соответствующего уровня (IR0 —IR7) маскируются и не
будут обрабатываться контроллером.
Вторая команда обслуживания прерываний OCW2 предназначено
для вывода команды завершения обработки аппаратного прерывания
(EOI), циклического сдвига и прямого изменения приоритетов уровней.
Назначение битов OCW2 следующее:
A0 D7 D6 D5 D4 D3 D2 D1 D0
┌──╥──┬──┬──┬─┬─┬──┬──┬──┐
0 R SL EOI 0 0 L2 L1 L0
└──╨──┴──┴──┴─┴─┴──┴──┴──┘
└── Номер уровня прерывания
└───── в двоичном коде, если он
└─────── требуется в команде.
└─ 1Завершение обработки аппаратного прерывания
Используются вместе с EOI=1
┌────┐ Безличный EOI (сбрасывается бит РОЗП с максималь-
0 0 ным приоритетом обрабатываемого прерывания)
├────┤ Персонифицированный EOI (сбрасывает бит, определя-
0 1 емый кодом L0 —L2 в РОЗП)
├────┤
1 0 Циклический сдвиг приоритетов влево на одну позицию
├────┤ Назначение низшего приоритета уровню, определяе-
1 1 мому кодом L0 — L2
└────┘
Как уже говорилось, процедура обработки аппаратного прерывания
должна перед своим завершением очистить свой бит в РОЗП выводом
команды завершения обработки прерывания (EOI). Существует два
варианта команды EOI: безличный (обычный) EOI и
персонифицированный EOI.
Обычный EOI очищает бит в РОЗП, соответствующий прерыванию
с максимальным приоритетом.
Персонифицированный EOI (R=0, SL=1, EOI=1, L0 —L2 равно
номеру уровня прерывания) очищает в РОЗП бит, соответствующий
78
     Формат первой команды обслуживания прерываний OCW1,
которая при чтении позволяет получить состояние маски, а при
записи — наложить маску на прерывания, выглядит так:

                   A0 D7 D6 D5 D4 D3 D2 D1 D0
                   1 ║ M7 M6 M5 M4 M3 M2 M1 M0

              Единичное значение одного из битов М0 —М7 означает, что
        прерывания соответствующего уровня (IR0 —IR7) маскируются и не
        будут обрабатываться контроллером.
              Вторая команда обслуживания прерываний OCW2 предназначено
        для вывода команды завершения обработки аппаратного прерывания
        (EOI), циклического сдвига и прямого изменения приоритетов уровней.
        Назначение битов OCW2 следующее:

       A0 D7 D6 D5 D4 D3 D2 D1 D0
     ┌──╥──┬──┬──┬─┬─┬──┬──┬──┐
       0  R SL EOI 0 0 L2 L1 L0
     └──╨──┴──┴──┴─┴─┴──┴──┴──┘
          │ │ │           │ │ └── Номер уровня прерывания
          │ │ │           │ └───── в двоичном коде, если он
          │ │ │           └─────── требуется в команде.
          │ │ └─ 1 – Завершение обработки аппаратного прерывания
          │ │
          │ │      Используются вместе с EOI=1
         ┌────┐ Безличный EOI (сбрасывается бит РОЗП с максималь-
           0│ 0 ным приоритетом обрабатываемого прерывания)
         ├────┤ Персонифицированный EOI (сбрасывает бит, определя-
           0│ 1    емый кодом L0 —L2 в РОЗП)
         ├────┤
           1│ 0   Циклический сдвиг приоритетов влево на одну позицию
         ├────┤ Назначение низшего приоритета уровню, определяе-
           1│ 1 мому кодом L0 — L2
         └────┘

              Как уже говорилось, процедура обработки аппаратного прерывания
        должна перед своим завершением очистить свой бит в РОЗП выводом
        команды завершения обработки прерывания (EOI). Существует два
        варианта    команды     EOI:    безличный      (обычный)    EOI    и
        персонифицированный EOI.
              Обычный EOI очищает бит в РОЗП, соответствующий прерыванию
        с максимальным приоритетом.
              Персонифицированный EOI (R=0, SL=1, EOI=1, L0 —L2 равно
        номеру уровня прерывания) очищает в РОЗП бит, соответствующий

78