Флаги управления прерываниями
В микропроцессоре имеются две пары флагов (IFF1, IFF2 и IMFa, IMFb), управляющих системой прерываний.
Флаг IFF1, когда установлен, разрешает маскируемые прерывания, а когда сброшен – запрещает их. Он сбрасывается при сбросе процессора, при возникновении немаскируемого прерывания и при выполнении инструкции запрещения прерываний DI, а устанавливается при выполнении инструкции разрешения прерываний EI. Кроме того, при выполнении инструкции возврата из немаскируемого прерывания RETN в него заносится состояние флага IFF2.
Когда происходит немаскируемое прерывание, состояние флага IFF1 копируется во флаг IFF2, а когда выполняется инструкция возврата из немаскируемого прерывания RETN, выполняется обратное копирование. Флаг IFF2 сбрасывается сбросом процессора и выполнением инструкции DI, а устанавливается инструкцией EI. При выполнении инструкций LD A,I и LD A,R его состояние заносится во флаг чётности P/V регистра флагов F.
Флаги IMFa и IMFb совместно определяют режим обработки маскируемых прерываний. Комбинации их состояний имеют следующий смысл:
– 00 – режим совместимости с процессором 8080 (режим 0);
– 01 – не используется;
– 10 – режим единственного вектора (режим 1);
– 11 – режим векторов, предоставляемых устройствами (режим 2).