C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 setvect / s / Библиотечн. функции Borland C++

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;
}