CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
setvect
setvect
Функция Устанавливает вектор прерывания.
Синтаксис void setvect(int intr_num, void interrupt(*isr)());
Файл, содержащий dos.h
прототип
Описание Каждый микропроцессор семейства 8086 включает
набор векторов прерываний, с номерами от 0 до 255.
Четырех байтовые значения каждого вектора в
действительности представляют собой адреса
программ обработки соответствующих прерываний.
setvect устанавливает новую программу обработки
прерывания с номером intr_num, передавая ее адрес
в параметре isr. Адрес подпрограммы можно передать
только в том случае, если она объявлена как
подпрограмма обработки прерывания (interrupt).
Примечание. Если вы используете прототипы,
объявленные в dos.h то вы можете просто посылать
адрес подпрограммы обработки прерывания setvect в
любой модели памяти.
Возвращаемое Нет.
значение
Переносимсоть setvect уникальна для микропроцессоров семейства
8086.
Смотрите также getvect.
Пример:
/* Примечание:
Это программа обработки прерываний. Вы должны компилировать
данную программу с отключенной функцией проверки переполнения
стека (Test Steck Overflow - off). */
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#define INTR 0X1C /* прерывание по таймеру */
void interrupt (*oldfunc)(); /* указатель на прерывание */
int count = 0;
void interrupt handler()
{
/* увеличить счетчик */
count ++;
/* вызвать старый вектор */
oldfunc();
}
int main(void)
{
/* сохранить старый вектор */
oldfunc = getvect(INTR);
/* установить новый вектор */
setvect(INTR,handler)
/* ничего не делать */
while(count<20)
printf("счетчик = %d\n",count);
/* восстановить старый вектор */
setvect(INTR,oldfunc);
return 0;
}
Оставить комментарий
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
