| Справочник программиста на персональном компьютере фирмы IBM | 36 |
просто послать требуемую цепочку битов в порт с адресом 21H,
который соответствует регистру маски прерываний (IMR). Регистр
маски на второй микросхеме 8259 для AT (IRQ8-15) имеет адрес
порта A1H. Установите те биты регистра, которые соответствуют
номерам прерываний, которые Вы хотите маскировать. Этот регистр
можно только записывать. Нижеприведенный пример блокирует диско-
вое прерывание. Не забудьте очистить регистр в конце программы,
иначе обращение к дискам будет запрещено и после завершения прог-
раммы.
;-маскирование 6-го бита регистра маски прерываний
MOV AL,01000000B ;маскируем бит 6
OUT 21H,AL ;посылаем в регистр маски прерываний
.
MOV AL,0 ;
OUT 21H,AL ;очищаем IMR в конце программы
1.2.3 Написание собственного прерывания.
Имеется несколько причин для написания собственного прерыва-
ния. Во-первых, большинство из готовых прерываний, обеспечиваемых
операционной системой, ничто иное, как обычные процедуры, доступ-
ные для всех программ, и Вы можете пожелать добавить свое в эту
библиотеку. Например, многие Ваши программы могут использовать
процедуру, выводящую строки на экран вертикально. Вместо того,
чтобы включать ее в каждую программу в качестве процедуры Вы
можете установить ее как прерывание, написав программу, которая
останется резидентной в памяти после завершения [1.3.4]. Тогда Вы
можете использовать INT 80H вместо WRITE_VERTICALLY (имейте вви-
ду, что вызов прерывания несколько медленней, чем вызов процеду-
Предыдущая страница 36 Следующая страница
1730205256
|