Курс лекций по вычислительной технике



         

Из операций сравнения вытекает - часть 9


- внутренние (немаскируемые): вызов ОС для анализа возможных  нарушений выполнения отдельных команд (исключительных ситуаций  или  исключений).

- программные прерывания, вызываемые по специальной команде  процессора для организации взаимодействия рабочей программы с ОС.

Обработка любых прерываний производится в три этапа:

     - прекращение выполнения текущей программы

 - переход к выполнению программы обработки прерываний

 - возврат управления прерванной программе.

 

     Действия, выполняемые на первом этапе:

-        сохранение в стеке регистра  флагов

-        сохранение в стеке CS

-        сохранение в стеке IP

-        сброс флага  разрешения прерываний

Последнее, чтобы исключить возможность возникновения вложенного преры­вания на пока обработчик прерывания не разрешит их командой  STI  (установка флага разрешения прерываний).

 

 Задача второго этапа - определение источника прерывания  и  вызов соответ­ствующей программы обработки прерываний. В реальном режиме  допускается до 256 источников прерываний. Каждому  источнику  прерываний соответствует отдельная программа обработки прерываний. Адрес местона­хождения этой программы определяется 4-х байтной адресной парой СS:IP.

 Располагаются эти адреса в начале памяти, начиная с  0-го  адреса, занимая т.о. 1024 байта (таблица векторов  прерываний).  Каждый  вызов пре­рывания сопровождается передачи в процессор и номера (вектора) прерывания.

 

Действия, выполняемые на втором этапе

-        определение местоположения начального адреса обработчика прерывания путем умножения вектора прерывания на 4

-        пересылка первых двух байтов в IP

-        пересылка следующих двух байтов в CS, т.о. осуществляется переход к адресу СS:IP




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