Исключения (особые ситуации) и прерывания представляют собой принудительную передачу управления задаче или процедуре. Такая задача или процедура называется обработчиком. Прерывания происходят в произвольные моменты времени выполнения программы в ответ на сигналы аппаратного обеспечения. Исключения происходят вследствие выполнения команд, приводящих к этим исключениям. Обычно обслуживание прерываний и исключений выполняется способом, прозрачным для прикладных программ. Прерывания используются для обработки событий, являющихся внешними по отношению к процессору, таких как запросы на обслуживание периферийных устройств. Исключения обслуживают условия, обнаруживаемые процессором во время выполнения команд, например деление на 0. Существует два источника прерываний и два источника исключений:
Прерывания
Маскируемые прерывания, получаемые на входе INTR процессора i486. Маскируемые прерывания не происходят до тех пор, пока не будет установлен флаг разрешения прерываний (IF).
Немаскируемые прерывания, получаемые на вход NMI (Не-Маскируемое Прерывание) процессора. Процессор не обеспечивает механизма отключения немаскируемых прерываний.
Исключения
Исключения, обнаруживаемые процессором. Далее они классифицируются как сбой, ловушка или аварийное завершение.
Программируемые исключения.
Команды INTO, INT 3, INT n и BOUND могут служить программными переключателями исключений. Эти команды часто называют "программными прерываниями", но они обрабатываюся процессором как исключения. В данной главе рассматриваются средства процессора i486, позволяющие управлять и отвечать на прерывания.