Составители:
Рубрика:
70
ройств, количество тиков таймера, начиная с полуночи и т.д. В частности, в
этой области организован буфер клавиатуры, который способен принять
до 15 символов от клавиатуры. Исполняемая программа должна опраши-
вать этот буфер и извлекать из него символы, иначе буфер переполнится,
о чём свидетельствует писк встроенного динамика при нажатии очередной
клавиши
.
Буфер организован как круговой массив, т.е. при достижении конца
буфера, он, если возможно начинает заполняться сначала. Два указателя:
"голова" и "хвост" определяют состояние буфера. "Голова" показывает на
первую свободную ячейку буфера, куда записывается очередной символ,
поступивший от клавиатуры. "Хвост" показывает символ, который будет
прочитан исполняемой программой при очередном обращении
к буферу.
Если буфер пуст, оба указателя показывают на одну и ту же ячейку буфе-
ра. Адрес "головы" буфера находится по адресу word ptr 0040h:001ah, а
адрес "хвоста" по адресу word ptr 0040h:001ch. Если содержимое обоих
указателей совпадает, значит клавиши нажаты не были. Эту проверку
можно использовать для вызова в программе функции, читающей символ
из буфера
клавиатуры.
7.4. Пример выполнения работы
Написать программу на ассемблере, выводящую в текущее положение
курсора символ @. Следующий символ @ выводить в позицию выше, ни-
же, левее или правее текущего символа, в зависимости от нажатия клавиш
“8”, “2”, “4”, “6” на цифровой клавиатуре. Вывод осуществлять непрерывно
с некоторой задержкой. Нажатие клавиши “0” завершает выполнение про-
граммы.
• Примечание. В программе необходимо вести отсчёт
времени для за-
держки вывода символа @. Для этого необходимо изменить подпро-
ройств, количество тиков таймера, начиная с полуночи и т.д. В частности, в этой области организован буфер клавиатуры, который способен принять до 15 символов от клавиатуры. Исполняемая программа должна опраши- вать этот буфер и извлекать из него символы, иначе буфер переполнится, о чём свидетельствует писк встроенного динамика при нажатии очередной клавиши. Буфер организован как круговой массив, т.е. при достижении конца буфера, он, если возможно начинает заполняться сначала. Два указателя: "голова" и "хвост" определяют состояние буфера. "Голова" показывает на первую свободную ячейку буфера, куда записывается очередной символ, поступивший от клавиатуры. "Хвост" показывает символ, который будет прочитан исполняемой программой при очередном обращении к буферу. Если буфер пуст, оба указателя показывают на одну и ту же ячейку буфе- ра. Адрес "головы" буфера находится по адресу word ptr 0040h:001ah, а адрес "хвоста" по адресу word ptr 0040h:001ch. Если содержимое обоих указателей совпадает, значит клавиши нажаты не были. Эту проверку можно использовать для вызова в программе функции, читающей символ из буфера клавиатуры. 7.4. Пример выполнения работы Написать программу на ассемблере, выводящую в текущее положение курсора символ @. Следующий символ @ выводить в позицию выше, ни- же, левее или правее текущего символа, в зависимости от нажатия клавиш “8”, “2”, “4”, “6” на цифровой клавиатуре. Вывод осуществлять непрерывно с некоторой задержкой. Нажатие клавиши “0” завершает выполнение про- граммы. • Примечание. В программе необходимо вести отсчёт времени для за- держки вывода символа @. Для этого необходимо изменить подпро- 70
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »