Микропроцессор Z80

Смотрите здесь раскрутка серверов css v34. |

Маскируемые прерывания


Запросы маскируемых прерываний поступают в микропроцессор по линии INT#. Распознавание маскируемых прерываний разрешается установкой флага IFF1. Когда этот флаг сброшен, маскируемые прерывания запрещены.

Микропроцессор Z80 поддерживает три режима обработки маскируемых прерываний. Выбор режима осуществляется соответствующей установкой флагов IMFa и IMFb.

Режим 0 соответствует механизму обработки прерываний микропроцессора 8080 и предназначен главным образом для сохранения совместимости с изделием фирмы Intel. Однако инженеры фирмы Zilog не до конца продумали этот режим, в результате чего полной совместимости можно добиться только с помощью дополнительных внешних схем. Суть проблемы заключается в следующем.

Микропроцессор 8080 обрабатывает прерывание, получая у контроллера прерывания полный код команды, которая должна быть выполнена. В принципе может использоваться любая инструкция микропроцессора, но практическую ценность имеют лишь инструкции вызова подпрограммы CALL (трёхбайтовая; код операции – 0CDh) и RST 0–7 (однобайтовые; двоичный код операции 11nnn111, где nnn – номер, стоящий после мнемоники RST). В результате выполнения любой из этих инструкций адрес следующей команды (т.е. команды, которая выполнилась бы следующей, если бы не произошло прерывание) сохраняется в стеке, а в счётчик команд PC заносится адрес первой инструкции обработчика прерывания (этот адрес содержится во втором и третьем байтах инструкции CALL или является фиксированным для инструкций RST 0–7 – от 0000h до 0038h с шагом 0008h). Чтобы получить у контроллера код инструкции перехода к обработчику прерывания, микропроцессор 8080 в ответ на запрос прерывания выдаёт необходимое количество раз сигнал подтверждения прерывания. В ответ на первый сигнал подтверждения контроллер выдаёт байт кода операции. Расшифровав его, микропроцессор определяет, требуется ли получить дополнительные байты кода команды, а значит, нужно ли выдать дополнительные сигналы подтверждения. Таким образом, для инструкции CALL сигнал подтверждения прерывания будет выдан трижды, а для любой из инструкций RST – лишь один раз.




Начало  Назад  Вперед