26
Существует три типа обмена между МПС и внешними устройства-
ми:
1. Программно-управляемый обмен
2. Обмен данными по прерываниям
3. Прямой доступ к памяти
§ 2.3. Аппаратные прерывания
Аппаратные прерывания обеспечивают реакцию МП на события,
происходящие асинхронно по отношению к исполняемому программно-
му коду.
Существует 4 источника прерываний:
1. Внутренние прерывания процессора и
сопроцессора (исключения)
2. Немаскируемые внешние прерывания
3. Маскируемые внешние прерывания
4. Программно вызываемые прерывания (не относятся к прерывани-
ям, специфический вызов процедуры)
Условие возникновения прерываний проверяется процессором на
границе инструкций – все шинные операции текущей инструкции будут
завершены до начала обработки прерывания.
При обработке прерывания МП сохраняет в стеке слово состояния
(PSW), сбрасывает
флаг разрешения прерываний (IF) и вызывает про-
цедуру обслуживания, точка входа в которую описана в таблице преры-
ваний, которая хранится в RAM. Процедура обработки прерывания за-
вершается по инструкции IRET, по которой из стека восстанавливается
содержимое сохранённых регистров.
Если во время обслуживания прерывания случайно изменить со-
стояние указателя или содержимого стека, то PC «зависнет».
Причиной «зависания» может также являться переполнение стека.
Это возникает в случае вложенных прерываний.
Внутренние прерывания процессора генерируются при возникно-
вении особых условий выполнения текущей инструкции. Под такие пре-
рывания отведены первые 32 вектора в таблице прерываний, однако не-
которые из них «пересекаются» с внешними и программными прерыва-
ниями, что является причиной возникновения
некоторых проблем при
программировании.