Вводс консоли и вывод на консоль
Функция 06h может использоваться как для ввода с консоли, так и для вывода символов на консоль. Режим работы функции зависит от содержимого регистра DL при вызове функции. Если в этом регистре находится значение 0FFh, функция выполняет ввод с консоли, в противном случае символ, код которого записан в этот регистр, выводится на консоль.
Регистры на входе: | AH = 06h
DL = 0FFh - для ввода символа с консоли; или DL = код символа, не равный 0FFh - для вывода символа на консоль | ||
Регистры на выходе: | ZF = 0, если в буфере имеется код нажатой клавиши;
ZF = 1, если буфер клавиатуры пуст; AL = код ASCII символа или 0, если AH содержит расширенный код ASCII символа; AH = скан-код или расширенный код ASCII символа, если AL=0 Функция проверяет комбинации клавиш <Control+C> и <Control+Break> |
Очевидно, что с помощью этой функции нельзя вывести на консоль символ с кодом 0FFh.
Основное отличие функции 06h от всех описанных ранее заключается в том, что эта функция не ожидает, пока пользователь нажмет на клавишу. Если буфер клавиатуры пуст, функция просто устанавливает флаг процессора ZF. Если же в буфере клавиатуры имеются символы, флаг ZF сбрасывается и в регистр AL функция записывает код ASCII символа.