Примечание. Введенный символ не отображается на экране (не выполняется эхо-отображения). Комбинация клавиш Ctrl/C (или Ctrl/Break) прекращает выполнение программы пользователя.
Функция 08Н – выполняет ввод с клавиатуры одного символа. Вызов:
аh=08h
Возвращаемое значение:
al = код ASCII введенного символа
Примечание. Введенный символ не отображается на экране (не выполняется эхо-отображение). Комбинация клавиш Ctrl/C ( или Ctrl/Break) прекращает выполнение программы пользователя.
Функция 09Н – выполняет отображение строки на стандартный вывод.Вызов:
аh = 09Н
ds:dx = указатель на отображаемую строку
Возвращаемого значения нет.
Примечание: Строка отображается на стандартный вывод. $ – признак конца строки, $ не отображается, dx содержит смещение строки, ds – сегментный адрес. Ниже приведены коды управления курсором:
1) 0dh (13) – перевод курсора в начало текущей строки;
2) 0ah (10) – перевод курсора вниз на 1 строку;
3) 08h (8) – перевод влево на 1 позицию;
H (7) – звуковой сигнал.
Пример. Чтобы вывести на экран с новой строки текст: «Я учу ассемблер» и затем перевести курсор в следующую строку. Реализация представлена в листинге 5.2.
Листинг 5.2. Фрагмент программы
…
beg db 0dh, 0ah, “Я учу ассемблер”, 0dh,0ah, “$”
…
Lea dx,beg ; адрес строки в dx
Mov ah,09h ; номер функции в аh
Int 21h ; вызов функции
Функция 0АН – выполняет ввод с клавиатуры в буфер строки символов. Вызов:
аh= 0аh
ds:dx = адрес буфера ввода
Возвращаемое значение:
Строка символов по указанному адресу
Примечание. Читается со стандартного ввода. dx содержит смещение буфера вывода, DS – сегментный адрес. Буфер вывода имеет следующую структуру: 0-й байт содержит максимальное количество символов в буфере; 1-й байт содержит количество реально введенных символов; начиная со 2-го размещён буфер для ввода размером не менее указанного в в 1-м байте. Выполняется эхо-отображение. Комбинация клавиш Ctrl/C (или Ctrl/Break) прекращает выполнение программы пользователя. Символы вводятся один за другим, до тех пор, пока не будет введен код 0Dh (код клавиш «Enter»), завершающий строку. В ходе ввода строки пользователь может редактировать строку, и, в частности, использовать «забой».
Пример. Пусть требуется ввести строку длиной не более 10 символов. Реализация представлена в листинге 5.3.