
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ВТ
отчет
по лабораторной работе №4
по дисциплине «Организация ЭВМ и систем»
Тема: Клавиатура IBM PC. Использование прерываний
Студент гр. 2392 |
|
Смирнова М. В. |
Преподаватель |
|
Ельчанинов М. Н. |
Санкт-Петербург
2023
Цель работы.
Изучить работу с клавиатурой, ознакомиться со стандартными средствами библиотеки C++ и средствами системы прерываний DOS и BIOS, обслуживающих клавиатуру.
Задание на лабораторную работу.
1. Разработать, написать и отладить программу управления перемещением символа ("*") в пределах заданного на экране окна. Для управления использовать функциональные клавиши стрелочки. Для ввода использовать стандартные функции языка C++. Сохранить отлаженную программу.
2. Изменить программу, заменив стандартные функции библиотеки C++ своими. Для написания функций используйте заданное прерывание, если его возможностей достаточно. Если его возможностей недостаточно, то замените его по своему усмотрению. Сохраните отлаженную программу.
3. Отлаженные программы предъявить преподавателю.
№ варианта |
X1 |
Y1 |
X2 |
Y2 |
Вид движения |
Клавиши управления |
Номер прерывания |
4 |
25 |
5 |
55 |
15 |
Пошаговое |
Все направления |
INT 21h |
Краткие сведения о подсистеме ввода информации с клавиатуры, используемых прерываниях, буфере клавиатуры и функциях обслуживания ввода с клавиатуры.
Подсистема ввода информации с клавиатуры - это часть операционной системы, которая отвечает за обработку сигналов, поступающих от клавиатуры, и передачу их в приложения. Подсистема ввода информации с клавиатуры состоит из нескольких компонентов, таких как:
Драйвер клавиатуры - это программа, которая взаимодействует с аппаратным обеспечением клавиатуры и преобразует сигналы, поступающие от нее, в коды клавиш, которые понятны операционной системе.
Буфер клавиатуры - это область памяти, в которой хранятся коды клавиш, поступившие от драйвера клавиатуры. Буфер клавиатуры имеет ограниченный размер и работает по принципу FIFO (first in, first out) - то есть первым извлекается тот код, который был первым помещен в буфер.
Прерывание клавиатуры - это сигнал, который посылается процессору, когда в буфере клавиатуры появляется новый код клавиши. Прерывание клавиатуры заставляет процессор приостановить выполнение текущей задачи и перейти к обработке кода клавиши. Прерывание клавиатуры имеет номер 9 в таблице векторов прерываний.
Функции обслуживания ввода с клавиатуры - это функции, которые предоставляют приложениям доступ к буферу клавиатуры и позволяют считывать коды клавиш, проверять наличие нажатых клавиш, устанавливать режимы работы клавиатуры и т.д. Функции обслуживания ввода с клавиатуры могут быть стандартными или пользовательскими. Стандартные функции обслуживания ввода с клавиатуры включают в себя функции библиотеки C++, такие как cin, get, getline и т.д. Пользовательские функции обслуживания ввода с клавиатуры - это функции, которые написаны программистом для решения конкретных задач, связанных с вводом с клавиатуры.