- •ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
- •ПРЕДИСЛОВИЕ
- •Регистр флагов
- •Программа вывода строки
- •Примеры резервирования памяти
- •Регистровая адресация
- •Непосредственная адресация
- •Прямая адресация
- •Косвенная регистровая адресация
- •Адресация по базе
- •Пример программы задержки выполнения
- •Сложение, вычитание, умножение, деление
- •Рис. 15.1. Структурная схема ввода данных с клавиатуры
- •Пример программы для ввода с клавиатуры
- •Пример посимвольного ввода
- •Сортировка выбором
- •Сортировка вставками
- •Использование параметров в макрокомандах
- •Библиографический список
- •Приложение 1
- •Перечень команд
- •Приложение 2
теля уменьшается на длину буфера (кольцо). Равенство адресов указателей говорит о том, что буфер пуст. Если хвостовой указатель подошел к головному с обратной стороны, то прием новых кодов блокируется с выдачей звукового сигнала.
Пример программы для ввода с клавиатуры
…………………………….. |
|
|
stdin = 0 |
|
|
stdout = 1 |
|
|
Ввод строки в буфер buff |
|
|
mov ah,3fh |
|
|
mov bx, stdin |
|
|
mov cx,80 |
|
|
mov dx,offset buff |
|
|
int 21h |
|
|
jc |
error |
; переход по ошибке |
mov actlen,ax //фактически введено символов Данные
buff db 80 dup(0) actlen dw 0
………………………………………….
15.2. ИСПОЛЬЗОВАНИЕ ГРУППЫ ФУНКЦИЙ DOS ПОСИМВОЛЬНОГО ВВОДА С КЛАВИАТУРЫ
Для ввода с клавиатуры можно использовать следующие функции прерывания 21 (номер функции задается в АН, код символа возвращается в AL):
01h – ввод символа с эхом (ждет ввода символа);
06h – прямой ввод-вывод через консоль (при наличии кода в буфере– извлекает его, если кода нет, то продолжение программы);
07h – ввод символа без эха и без отработки CTRL + C (ждет ввода символа);
08h – ввод символа без эха и с отработкой CTRL + C, вызывающей аварийное завершение программы (ждет ввода символа);
OAh – буферизованный ввод строки с эхом (ждет ввода символа);
73
