ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.02.2024
Просмотров: 30
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра вычислительной техники
отчет
по лабораторной работе №5
по дисциплине «Организация ЭВМ и систем»
Тема: Использование аппаратных прерываний
Студент гр. 1376 | | Афанасова Я.В. |
Преподаватель | | Ельчанинов М.Н |
Санкт-Петербург
2022
Цель работы
Цель работы – знакомство с различного вида аппаратными прерываниями и создание собственных подпрограмм обработки прерываний.
Формулировка задания
По заданию преподавателя разработать алгоритм и реализовать программу подключения собственной подпрограммы обработки прерывания и использовать её в цепочке со стандартной подпрограммой обработки прерывания от одного из следующих устройств компьютера:
1. системный таймер;
2. клавиатура;
3. контроллер накопителя на гибких магнитных дисках;
4. таймер реального времени;
5.контроллер накопителя на жёстком магнитном диске.
Техническое задание
Разработать алгоритм и реализовать программу подключения собственной подпрограммы обработки прерывания и использовать её в цепочке со стандартной подпрограммой обработки прерывания системного таймера.
Результат работы программы
В результате вызова функции собственного прерывания на экран будет выведено строку “ TEST PER 2 SECONDS ” с интервалом в 2 секунды (рисунок 1).
Рисунок 1 — Результат работы программы
|
|
Структурная схема аппаратных средств
Исходный код программы
#include
#include
#include
unsigned long far* N = (unsigned long far*) MK_FP(0x0040, 0x006c);
void interrupt Custom(...)
{
if (*N % 36L == 0)
{
cputs(" TEST PER 2 SECONDS");
}
}
int main()
{
void interrupt(*base)(...);
base = getvect(0xc1);
setvect(0x1c, Custom);
getch();
setvect(0x1c, base);
return 0;
}