"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора

;---маскирование 6-го бита регистра маски прерываний
MOV AL,01000000B ;маскируем бит 6
OUT 21H,AL ;посылаем в регистр маски прерываний
.
MOV AL,0
OUT 21H,AL ;очищаем IMR в конце программы


.h3 1.2. Написание собственного прерывания.
-------------------------------------------

Имеется несколько причин для написания собственного прерыва-
ния. Во-первых, большинство из готовых прерываний, обеспечиваемых
операционной системой, ничто иное, как обычные процедуры, доступ-
ные для всех программ, и Вы можете пожелать добавить свое в эту
библиотеку. Например, многие Ваши программы могут использовать
процедуру, выводящую строки на экран вертикально. Вместо того,
чтобы включать ее в каждую программу в качестве процедуры Вы
можете установить ее как прерывание, написав программу, которая
останется резидентной в памяти после завершения [1.3.4]. Тогда Вы
можете использовать INT 80H вместо WRITE_VERTICALLY (имейте вви-
ду, что вызов прерывания несколько медленней, чем вызов процеду-
ры).
Второй причиной написания прерывания может быть использование
какого-либо отдельного аппаратного прерывания. Это прерывание
автоматически вызывается при возникновении определенных условий.
В некоторых случаях BIOS инициализирует вектор этого прерывания
так, что он указывает на процедуру, которая вообще ничего не
делает (она содержит один оператор IRET). Вы можете написать свою
процедуру и изменить вектор прерываний, чтобы он указывал на нее.
Тогда при возникновении аппаратного прерывания будет выполняться
Ваша процедура. Одна из таких процедур это прерывание времени
суток [2.1.0], которое автоматически вызывается 18.2 раза в се-
кунду. Обычно это прерывание только обновляет показание часов, но
Вы можете добавить к нему любой код, который Вы пожелаете. Если
Ваш код проверяет показания часов и вступает в игру в определен-
ные моменты времени, то возможны операции в реальном времени.
Другие возможности - это написание процедур обработки Ctrl-Break
[3.2.8], PrtSC [3.2.9] и возникновения ошибочных ситуаций
[7.2.5]. Прерывания принтера [6.3.1] и коммуникационные [7.1.8]
позволяют компьютеру быстро переключаться между операциями вво-
да/вывода и другой обработкой.
Наконец, Вы можете захотеть написать прерывание, которое пол-
ностью заменит одну из процедур операционной системы, приспособ-
ленное к Вашим программным нуждам. В [1.2.4] показано как напи-
сать прерывание внутри прерывания, которое позволяет Вам модифи-
цировать существующие процедуры.

Средний уровень.