Файл: Использование аппаратных прерываний.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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;

}