Программирование на Ассемблере для персональных компьютеров. Садовой Н.Н - 70 стр.

UptoLike

Составители: 

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