Типы прерываний и источники возникновения запросов. Принципы обработки прерываний и флаговая логика микропроцессоров, страница 11

1. подсистему ПДП, функционально эквивалентную каскадному включению двух контроллеров ПДП 8237 и микросхемы регистра страниц

ПДП (DMA Cntlr, DMA ADD Map, Map Select);

2.подсистему маскируемых прерываний, функционально эквивалентную каскадному включению двух контроллеров прерываний типа 8259  (Intr Cntlr);

3. программируемый интервальный таймер;

4. регистр конфигураций;

5. логику ожидания для ПДП;

6. устройство часов реального времени.

Структурная схема интегрированного периферийного контроллера приведена на рис.3. Сигналы обозначены в латинской аббривиатуре для совместимости с таблицей цоколевки выводов СБИС 82С206.

Таким образом, одна СБИС заменяет 4 БИС и устройства средней степени интеграции. С точки зрения программиста процесс управления остается без изменения, т.е. обеспечивается полная программная совместимость с предыдущими моделями. Поэтому приемы обработки прерываний, рассматриваемые здесь, пригодны для архитектур на основе любых процессоров типа Intel 80x86 и им подобных.

              Аппаратные прерывания от таймера и клавиатуры

Функция

Назначение

Входные параметры

Ожидаемые действия

Int 16

Int 17

Int

Int 23

Указание на программу обработки ситуации, когда на клавиатуре нажаты клавиши

Ctrl+Break

Выполнение действий, предусмотренных системой в ответ на нажатие клавиш Ctrl+Break

Т а б л и ц а  П2

Основной параметр

(содерж-имое ре-гистра ah)

Содержание функции

Дополнитель-ные входные параметры

Выходные параметры, результат вызова функции, примечания

ah =   01h

Ввод символа (с клавиатуры)

В регистр al помещается символ из стандартного входного потока 

Ожидается символ из стандартного устройства ввода. Если обнаружи-вается Ctrl-Break, то выполняется функция Int 23 (см.)

ah =   02h

Вывод символа

В dl прадвари-тельно должен быть помещен выводимый символ

Посылает символ из dlв стандартный выходной поток. Если обнаружи-вается Ctrl-Break, то выполняется функция Int 23 (см.)

ah =   05h

Печать символа

печат

Посылает символ из dlв стандартный принтер (обычно LPT1)

ah =   06h

Консольный ввод/вывод

В dl — символ для вывода или код 0ffh требования ввода

Если dl = (0…0feh), то это символ для вывода в стандартный выходной поток. Если dl = 0ffh то это код, который требует ввода символа из стандартного входного потока.

Функция возвращает

ah  =  09h

Вывод строки (текста)

ds:dx  — адрес строки, ограниченной символом ‘$’

Строка символов, начиная с адреса ds:dx и до символа ‘$’, направляется в стандартный поток

ah  = 025h

Установка нового вектора прерывания в IDT

al = номер (код) преры-вания (число в диапазоне от 0 до 0ffh),

ds:dx — указатель на начало обработчика прерывания

ah = 035h

Чтение вектора прерывания

al= номер (код) прерывания

es:bx — указатель на программу обработки прерывания

ah = 03fh

Чтение файла

ah = 040h

Запись в файл