Disable
disable
Функция Запрещает прерывания.
Синтаксис #include
void disable(void);
Файл, содержащий dos.h прототип
Описание Данная макрокоманда разработана с целью обеспе- чения программистов гибким средством контроля над прерываниями на физическом уровне.
Макрокоманда disable делает прерывания невозможны- ми. Разрешено только прерывание NMI с внешнего ус- тройства (немаскируемое прерывание).
Возвращаемое Нет. значение
Переносимость Данная макрокоманда уникальна для архитектуры 8086.
Смотрите также
Пример:
/* Замечание. Это программа обработки прерывания. Вы не сможете откомпилировать эту программу с включенной проверкой переполнения стека (Test Stack Overflow - On) и получить правильно работающую программу. */
#include
#include
#include
#define INTR 0X1C /* прерывание таймера */
void interrupt (*oldhandler)(void);
int count=0;
void interrupt handler(void) { /* запрет других прерываний во время обработки этого */ disable(); /* увеличение глобального счетчика */ count++; /* разрешение прерываний после обработки */ enable(); /* вызов старой программы обработки */ oldhandler(); } int main(void) { /* сохранить старый вектор */ oldhandler = getvect(INTR); /* записать новый вектор */ setvect(INTR,handler); /* цикл, пока счетчик не достигнет 20 */ while(count < 20) printf("счетчик = %d\n",count); /* восстановить старый вектор */ setvect(INTR,oldhandler); return 0; }