Информатика и технология программирования


           

В процессе обработки прерывания по



} // прерывания

void main()
{
TIMOLD = getvect(TIMVEC); // Сохранение старого вектора

setvect(TIMVEC,TIMINT); // Установка нового вектора

// на функцию TIMINT

setvect(TIMVEC, TIMOLD); // Восстановление старого вектора

}

В процессе обработки прерывания по цепочке имеется один нюанс. Дело в том, что старый обработчик прерывания, доступный по вектору, ожидает, что его выполнение начнется после выполнения процессором входа в прерывание. Поэтому транслятор при вызове функции по указателю - вектору прерывания - эмулирует это прерывание, благо для этого необходимо только дополнительно загрузить в стек регистр флагов процессора.

(*TIMOLD)(); // Эмуляция прерывания по старому вектору

// Сохранение флагов в стеке и вызов функции

// по указателю


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий