Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Функция Получает вектор прерывания.

 
 
 
 Синтаксис          #include<dos.h>
 
                    void interrupt(*getvect(int intr_num))();
 
 
 
 Файл, содержащий   dos.h
 
 прототип
 
 
 
 Описание           Любой из семейства процессоров 8086 содержит набор
 
                    векторов прерываний,  пронумерованных от 0 до 255.
 
                    4-х  байтовое значение каждого вектора есть адрес,
 
                    по   которому   расположена   функция    обработки
 
                    прерывания.
 
 
 
                    Функция getvect  считывает  значение   вектора   с
 
                    номером intr_num   и   интерпретирует  прочитанное
 
                    значение,  как "дальний"  указатель  (с  атрибутом
 
                    "far")  на некоторую функцию прерывания.  Параметр
 
                    intr_num должен иметь значение от 0 до 255.
 
 
 
 
 
 Возвращаемое       Функция getvect возвращает 4-х байтовое значение,
 
 значение           хранящееся в векторе прерывания с номером
 
                    intr_num.
 
 
 
 Переносимость      Функция уникальна для DOS.
 
 
 
 Смотрите также     disable, enable, geninterrupt, setvect.
 
 
 
 Пример
 
 
 
 #include<stdio.h>
 
 #include<dos.h>
 
 
 
 void interrupt get_out(); /* прототип ф-ции обработки прерывания */
 
 void interrupt (*oldfunc)(); /* указатель на прерывание */
 
 int looping = 1;
 
 
 
 int main(void)
 
 {
 
    puts("Нажмите <Shift><Ptr Sc> для завершения");
 
    /* сохранить старый вектор */
 
    oldfunc = getvect(5);
 
    /* установить новый вектор */
 
    setvect(5,get_out)
 
    /* ничего не делать */
 
    while(looping);
 
    /* восстановить старый вектор */
 
    setvect(5,oldfunc);
 
    puts("Успешно");
 
    return 0;
 
 }
 
 void interrupt get_out()
 
 {
 
    looping = 0; /* изменить значение глобальной переменной */
 
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS