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

Запись символа в буфер клавиатуры (05h int 16h)



Запись символа в буфер клавиатуры (05h int 16h)

Вход: АН = 05h запись символа в буфер клавиатуры: СН = скан-код; CL = символ ASCII.

Выход: AL = состояние: 00h — успешная запись; Olh — ошибка (буфер клавиатуры заполнен).

С помощью этой функции можно осуществлять подыгрыш для программ, которые ожидают ввода с клавиатуры. Сам буфер клавиатуры организован по принципу кольца, имеет размер 16 байт и занимает в памяти диапазон адресов 0040h:001Eh...0040h:003Dh. В ячейке 0040h:001Ah хранится адрес начала буфера, а в ячейке 0040h: OOlCh — адрес конца. Если содержимое этих ячеек равно, то буфер пуст. Одному символу в буфере соответствует слово, в котором первый байт — скан-код клавиши, а второй — символ ASCII. Исследовать данную функцию можно с использованием операции сцепления (|) MS DOS. Для этого оформим фрагмент кода для определения наличия символа в буфере и его ввода в виде отдельной программы.

В командную строку MS DOS необходимо ввести строку: prog_1.exe | prog_2.exe >p.txt

В результате всех этих действий будет создан файл p.txt, который и будет содержать строку str из файла prog_1.asm.



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