Сборник по задачам и примерам Assembler

       

Чтение с эхом символа с клавиатуры (10h int 21h)



Чтение с эхом символа с клавиатуры (10h int 21h)

Функция 01h позволяет ввести один символ с клавиатуры. Если символа нет, то функция ожидает его ввода. Вводимый символ отображается на экране (эхо).

Вход: АН = 01h — чтение символа с эхом. "

Выход: AL = ASCII-код символа или 0.

На выходе функция помещает в регистр AL ASCII-код символа или 0. Наличие нуля в регистре AL говорит о том, что в буфере клавиатуры находится расширенный ASCII-код и необходимо повторить вызов функции с тем, чтобы прочитать его второй байт. Также функция 01h проверяет наличие в буфере символов нажатия комбинации Ctrl+C (Ctrl+Break), при обнаружении которых производится вызов прерывания int 23h.

Для ввода нескольких символов данную функцию необходимо использовать в цикле.

:prg05_06.asm - программа ввода нескольких символов функцией 01h 21h

;.........

.data

string db 5 dup (0)

len_string =$-string

adr_string dd string

.code

......movcx.len_sthng

lesdi.adr_string ml: mov ah.01h

int 21h

cmpal.0 расширенный код???

jnem2

обрабатываем расширенный код

jmp m3

ni2: stosb .формируем строку символов
mЗ: loop ml


Проверяя работу программы, вместо ввода очередного символа введите комбинацию Ctrl+C и посмотрите реакцию программы.



Содержание раздела