Системное программное обеспечение персональных ЭВМ


Пример 3 /*== ПРИМЕР 7.3 ==*/ - часть 2


Обычной реакцией на эту комбинацию является немедленное завершение текущей программы, некоторые подробности применения этой комбинации будут обсуждены далее.

Большинство действий, связанных с обработкой информации о клавиатуре в области данных BIOS обеспечивается прерыванием BIOS 0x16. Это прерывание имеет три функции (номер функции задается в регистре AH).

  • Функция 0 возвращает в регистре AL ASCII-код, а в AH - скан-код первого символа из очереди (или 0 и ASCII-код для расширенных кодов), после чего код из очереди удаляется. Если очередь пуста, функция ожидает, когда в очередь поступит код (то есть, ожидает нажатия клавиши).

  • Функция 1 в случае, если очередь пуста, не ожидает нажатия клавиши, а только устанавливает в 1 флаг Z (флаг нуля) микропроцессора. Если же очередь не пуста, она возвращает в регистрах то же, что и функция 0, сбрасывает флаг Z, но не удаляет код из очереди.

  • Функция 2 возвращает в AL байт флагов, совпадающий с байтом по адресу 0040:0017.

Пример 7.5 иллюстрирует работу прерывания 0x16.




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