logo search
несколько программ / bsp33

Вводс консоли и вывод на консоль

Функция 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 символа.