Иллюстрированный самоучитель по задачам и примерам Assembler

Функции MS DOS для работы с консолью

Вводимая строка отображается на экране. Буфер ввода для данной функции лучше оформлять в виде структуры.

;prg05_07.asm – программа ввода строки функцией OAh int 21h
buf_Oahstruc
len_bufdb 11:длина buf_0ah
len_in db 0 действительная длина введенного слова (без учета Odh)
buf_in db 11 dup (20h);буфер для ввода (с учетом Odh)
ends
.data
buf buf_0ah< >
adr_bufdd buf
.code
……….
:вводим 10 символов с клавиатуры
Ids dx,adr_buf
movah.Oah
int 21h Обработка введенной строки

Получить состояние клавиатуры (0Bh int 21h)

Функция 0Bh проверяет наличие в буфере символа для ввода.

Вход: АН = 0Bh – проверка состояния клавиатуры.

Выход: AL = 0ffh – буфер клавиатуры содержит символ для ввода; AL = 0 – буфер клавиатуры пуст.

Данная функция формирует только логический результат – присутствует символ в буфере или буфер пуст, поэтому вызов функции 0Bh необходимо комбинировать с одной из функций извлечения символа из буфера ввода. Использование этой функции удобно для программ, управление которыми производится с клавиатуры, – типа командного процессора. В процессе своей работы они постоянно ожидают ввода пользователем управляющих команд, в связи с чем периодически проверяют входной буфер.

Функция производит проверку нажатия комбинации CTRL + C (CTRL + Break), при наличии которого вызывается прерывание int 23h.

Ввод с клавиатуры с предварительной очисткой буфера (ОСh int 21h)

Функция 0Ch выполняет ввод, предварительно очищая буфер клавиатуры. Это удобно для предотвращения чтения из буфера оставшихся там символов, возможно, введенных ошибочно или случайно. Функция гарантирует, что программа получит именно те данные, которые ввел оператор. Важно отметить, что функция 0Ch выполняет только очистку буфера, ввод символа осуществляет одна из функций, номер которой указывается в регистре AL при вызове этой функции.

Вход: АН = 0Ch – ввод с клавиатуры с предварительной очисткой;

  • AL = номер функции (01h, 06h, 07h, 08h, 0ah).

Выход: определяется функцией, указанной в AL при вызове функции.

Функция производит проверку нажатия комбинации CTRL + C (CTRL + Break), при наличии которого вызывается прерывание int 23h.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.