Пишем программу начальной загрузки компьютера
Архитектура IBM PC на процессорах ix86
Исключения и прерывания
Исключения (особые ситуации) и прерывания представляют собой
принудительную передачу управления задаче или процедуре.
Такая задача или процедура называется обработчиком.
Прерывания
происходят в произвольные моменты времени выполнения программы в
ответ на сигналы аппаратного обеспечения.
Исключения
происходят вследствие выполнения команд, приводящих к этим
исключениям. Обычно обслуживание прерываний и исключений
выполняется способом, прозрачным для прикладных программ.
Прерывания используются для обработки событий, являющихся
внешними по отношению к процессору, таких как запросы на
обслуживание периферийных устройств. Исключения обслуживают
условия, обнаруживаемые процессором во время выполнения команд,
например деление на 0.
Существует два источника прерываний и два источника исключений:
- Прерывания
- Маскируемые прерывания, получаемые на входе INTR
процессора ix86. Маскируемые прерывания не происходят до
тех пор, пока не будет установлен флаг разрешения
прерываний (IF).
Команды работы с флагом:
'cli' (Очистить флаг разрешения прерываний) и 'sti'
(Установить флаг разрешения прерываний) приводят в соответствующее состояние флаг
IF (бит 9 регистра EFLAGS).
- Немаскируемые прерывания, получаемые на вход NMI
(Не-Маскируемое Прерывание) процессора. Процессор не
обеспечивает механизма отключения немаскируемых
прерываний.
- Исключения
-
Исключения, обнаруживаемые процессором. Далее они
классифицируются как сбой, ловушка или аварийное
завершение.
- Программируемые исключения.
- Команды INTO, INT 3, INT n и
BOUND могут служить программными переключателями исключений.
Эти команды часто называют 'программными прерываниями', но
они обрабатываюся процессором как исключения.
[Назад] [↑]