1. Начальная установка МП (НУ) − после включения электропитания триг. регистр находится в произвольном состоянии, в том числе и РС, поэтому МП может начать выполнение программы с произвольного адреса, поэтому происходит сброс МП. Для этого имеется вход RESET − вход НУ.
При этом происходит следующее:
1. РС сбрасывается в 0: (PC)←0000H.
2. Сбрасывается триггер разрешения прерываний: (INTE)←0, т. е. прерывания запрещаются
3. Триггер захвата сбрасывается в 0: (HLDA)←0.
Когда RESET = 0 МП начинает работу: содержимое РС выдается на ША и МП читает код из 0-ой ячейки памяти (здесь должна быть первая команда программы).
2. Режим ожидания − для нормальной работы МП надо чтобы READY = 1. Во 2-ом такте каждого машинного цикла МП проверяет состояние входа READY. Если в момент среза импульса F2 READY = 0, то МП переходит в режим ожидания. В этом режиме МП не производит никаких действий. В режиме ожидания на выходе WAIT = 1. В этом режиме МП постоянно анализирует состояние входа READY, и как только появляется высокий уровень − МП продолжает выполнение прерванной программы. Этот режим необходим для согласования МП с медленными устройствами.
3. Режим захвата − МП отключается от управления системной шиной и отдает ША и ШД контроллеру прямого доступа к памяти. Для перехода в этот режим контроллер устанавливает HOLD = 1 . МП во 2-ом такте каждого машинного цикла анализирует этот вход и если там 1, то МП переходит в режим захвата, переводя ША и ШД в Z − состояние. МП в этом режиме следит за входом HOLD и как только там будет 0 МП продолжает выполнение прерванной программы.
4. Режим прерывания − чтобы перейти к подпрограмме прерываний надо чтобы они были разрешены. Это определяется триггером INTE, если INTE = 1 − прерывания разрешены, если INTE = 0 − прерывания запрещены. Для разрешения прерывания имеется команда EI, а для запрещения команда DI.
Внешние устройства подают высокий уровень на вход INT:
Если INTE = 1, то МП заканчивает выполнение текущей команды и сбрасывает в 0 триггер INTE. Закончив выполнение команды, МП переходит к машинному циклу обслуживания прерывания. В этом цикле:
1. МП помещает содержимое РС в стек, в РС содержится адрес предыдущей команды − это адрес возврата в основную программу;
2. Из СС формируется сигнал управления INTA. По этому сигналу внешнее устройство передает на ШД код команды RST N (N = 0, 1,…,7). МП считывает этот код и определяет адрес подпрограммы прерывания.
3. В РС загружается полученный адрес подпрограммы, и она выполняется.
4. В конце подпрограммы прерывания находится команда возврата RET. По этой команде МП извлекает из вершины стека адрес возврата и заносит его в РС − происходит возврат к основной программе.
RST N
VVV
Адрес ISR, HEX
RST 0
RST 1
RST 2
RST 3
RST 4
RST 5
RST 6
RST 7
В этом машинном цикле адрес не используется и на ШД образуется слово состояния − вырабатывается строб INTA. С помощью строба на ШД поступает адрес команды RST N.
5. Режим останова − команда останова HLT, после выполнения этой команды МП переходит в режим останова − МП не выполняет никаких действий, содержимое РС неизменимо, МП переводит буферы ША и ШД в 3-е состояние, на выходе МП WAIT = 1. В этом режиме МП может находиться бесконечно долго. Выти из режима останова можно 2-мя методами:
1. Подачей запроса прерывания на вход INT − если прерывание разрешено (INTE = 1), то МП выходит из режима останова и переходит к подпрограмме обработки прерывания, если прерывание запрещено, то этот метод не срабатывает.
2. Подачей сигнала начальной установки на вход RESET − при этом МП начнет выполнение программы с нулевого адреса. Этот метод всегда срабатывает.