Функция Устанавливает вектор прерывания.
Синтаксис 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
#include
#include
#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;
}