![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Функция 0Bh – выполняет опрос состояния буфера клавиатуры. Вызов:
ah = 0Bh
Возвращаемое значение:
аl = 00h, если нет символа в буфере клавпиатуры;
al = ffh, если есть символ в буфере клавиатуры.
Примечание. Устанавливает значение AL в зависимости от наличия символов в буфере клавиатуры. Часто используются в задачах, действующих при нажатии определенных клавиш. Комбинация клавиш Ctrl/ (или Ctrl/Break) прекращает выполнение программы пользователя.
Пример выполнения работы
Ввести строку с клавиатуры, посчитать, сколько и каких десятичных цифр имеется во введенной строке, посчитанные значения вывести на экран. Решение представлено в листинге 5.4.
Листинг 5.4 Текст программы:
Data segment
COUNT db 10 dup (0); счетчик количества цифр
CIFR db ‘0123456789ABCDEF’; таблица преобразования цифр
IN_STR db 80,?, 82 dup (?); буфер ввода
OUT_STR db 0Dh, 0Ah,?,’-‘,?,?,’$’; буфер вывода
Data ends
Code segment
assume cs:code, ds:data
START: mov ax, data
Mov ds, ax
; Ввод строки
Lea dx, IN_STR
Mov ah, 0ah
Int 21h
; Обработка
Xor ah, ah; обнуление старшего байта AX
lea bx, IN_STR+2; адрес начала введённой строки
Xor cx, cx
mov cl, IN_STR+1; количество введенных символов
ВВ: mov al, [BX]; очередной символ строки
cmp al,’0’; код символа меньше чем код нуля?
Jb NC; да, не цифра
cmp al, ‘9’; код символа больше чем код девяти
Дата публикования: 2014-11-28; Прочитано: 542 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!