лабы 1-й сем / лаба 5 / 5_lab_12_team
.docxМИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра вычислительной техники
ОТЧЕТ
по лабораторной работе №5
по дисциплине «Организация ЭВМ и систем»
Тема: “использование аппаратных прерываний”
Преподаватель |
|
_______________ Анисимов А.В. |
Санкт-Петербург
2022
Цель работы.
Целью работы является знакомство с различного вида аппаратными прерываниями и создание собственных подпрограмм обработки прерываний
Задание
Разработать алгоритм и реализовать программу подключения собственной подпрограммы обработки прерывания и использовать её в цепочке со стандартной подпрограммой обработки прерывания от системного таймера компьютера.
Блок-схема алгоритма:
Текст программы
#include "dos.h"
#include "conio.h"
void interrupt(far *oldvect)(...);
long ticks, clics;
void interrupt far timer(...) {
if (!(++ticks % 10))
cprintf("*");
_chain_intr(oldvect);
}
int main(){
clrscr();
char choice;
ticks = 0;
oldvect = _dos_getvect(0x1c);
_dos_setvect(0x1c, timer);
cprintf("Timer set (for end press any button)\n\r");
getch();
_dos_setvect(0x1c, oldvect);
cprintf("\n\rPress any button...");
getch();
return 0;
}
Пример выполнения программы
Структурная схема аппаратных средств
Вывод
При выполнении лабораторной работы были изучены различные виды аппаратного прерывания, создана собственная подпрограмма обработки прерываний и ознакомлены со стандартными средствами библиотеки C++ и средствами системы прерываний DOS и BIOS. Написание и отладка программы происходили в Turbo C++.