Отчет по практике: Микропроцессорные системы
cmp al,0
jz m1
mov ah, 07h
int 21h
cmp al, 27
jne m1
mov ax, 4C00h
int 21h
m1: ;---Продолжение программы
ah=0Ch – Чтение с предварительной очистки буфера .
Пример:
movah, 0Ch
moval, <номер функции 01h, 07h, 08h, 06h,или 0Ah>
int 21h
Чтобы программа не читала из буфера клавиатуры давно нажатую клавишу, данная функция очищает буфер клавиатуры, а затем выполняет функцию, номер которой указана в регистре al. Для функций 06h и 0Ah необходимо указать дополнительные параметры в регистре dl и dx. Реакция на Ctrl – Break определяется используемой функцией ввода.
ah=0Ah – Ввод строки в буфер ввода(фильтрующая).
Для ввода строки нужно подготовить блок параметров.
Пример:
BL_par label byte
Maxlen db 7
Actlen db ?
S db 7 dup(?)
……………….
Movah, 0Ah
Leadx, BL_par ;адрес поля блока параметров
Int 21h
Результат функции – в поле S введённая строка, а в поле Actlen длинна введённой строки.
Функция ожидает ввода строки начиная с текущей позиции курсора. Пользователь может набрать на экране 6 символов максимум (т.е. Maxlen - 1), а при вводе следующего символа выдаётся предупреждающий звуковой сигнал и символ не вводится. Набор строки завершается нажатием клавиши Enter, до нажатия Enter с помощью BackSpace строку можно отредактировать.
Например: