Особенности обработки внутренних и программных прерываний
Набор и назначение внутренних прерываний строго регламентированы для конкретной модели процессора. Каждое внутренне прерывание связано с определенным событием в процессоре и с определенным номером в списке обрабатываемых прерываний. Например, в процессорах серии Intel 80x86 при делении на нуль возникает внутреннее прерывание с номером 0. При обработке внутренних запросов внешний контроллер прерываний не используется, т.к. процессор уже имеет информацию о номере прерывания. Переход на нужную процедуру обработки выполняется в соответствии с принципом, реализованном в конкретном процессоре.
Если нужно вызвать программное прерывание из текущей программы, программист в соответствующем месте программы должен разместить специальную команду. Для процессоров серии Intel 80x86 такой командой является INTn, где n – номер нужного прерывания. При выполнении такой команды процессор получает информацию о номере прерывания непосредственно из кода команды и выполняет переход на нужную процедуру так же, как и в случае обработки других видов прерываний. При обработке программных прерываний внешний контроллер не используется.
|