Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Int 21h ; Вызов функции



Функция 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...