Иллюстрированный самоучитель по Assembler


Программирование аппаратных средств - часть 3


Исходное значение маски устанавливается программами начальной загрузки компьютера в зависимости от конфигурации вычислительной системы. Типичным является значение A8h, показанное на рис. 3.10. При этом значении маски размаскированными оказываются системный таймер, клавиатура, мышь, подключенная к первому последовательному порту

Рис. 3.10. Регистр маски ведущего контроллера прерываний.

СОМ1, гибкий диск, а также выход от ведомого контроллера, подключаемый ко входу IRQ2 ведущего. Замаскированы оба параллельного порта (принтер, подключаемый к порту LPT1, обычно не использует прерываний, а второй параллельный порт часто просто отсутствует) и второй последовательный порт, к которому ничего не подключено. Другими словами, размаскировано все нужное, и замаскировано все ненужное.

В раде случаев возникает необходимость замаскировать прерывания от системного таймера, который является единственным постоянно активным источником прерываний. Такая ситуация типична, в частности, для автоматизированных измерительных систем, в которых недопустимо прерывать поток данных, поступающих от измерительной установки в компьютер. Любое прерывание процесса приема данных может привесит к потере части принимаемой информации и нарушению работы установки. Для запрета прерываний от таймера надо выполнить такую последовательность команд:

in AL,21h ;Чтение регистра маски


or AL,1 ;Установка 1 в бите 0


out 21h,AL ;Запись нового значения маски

Восстановление исходного состояния вычислительной системы с разрешенными прерываниями от таймера осуществляется следующим образом:

in AL,21h ;Чтение регистра маски


and AL, 0FEh ;Установка 0 в бите 0


out 21h,AL ;Запись нового значения маски

Другим примером использования режима свободного доступа к устройству является программирование энергонезависимой КМОП-микросхемы, включающей в себя часы реального времени, о которых уже говорилось в разделе 5 этой главы, а также информацию о конфигурации компьютера и в некоторых случаях пароль. Общий объем КМОП-памяти составляет 64 байт (от 00h до 3Fh); доступ к байтам КМОП-памяти осуществляется через порты 70h и 71h.




- Начало -  - Назад -  - Вперед -



Книжный магазин