Обработка прерываний
Группа команд, выполняемых в ответ на запрос прерывания, называется подпрограммой обработки прерывания. Подпрограммы обработки прерываний во многом сходны с другими подпрограммами за исключением того, что они автоматически вызываются аппаратным механизмом вызова, а не командами вызова подпрограмм, и все регистры CPU08, за исключением регистра H, сохраняются в стеке (см. I - маска прерывания).
Прерывание (если оно разрешено) вызывается в нормальном потоке программы сразу по окончании исполнения текущей программы. Логика прерывания заносит содержимое всех регистров CPU08, за исключением регистра H, в стек и, таким образом, их состояния могут быть восстановлены по завершении прерывания. После занесения в стек содержимого регистров CPU08, вектор прерывания с наивысшим приоритетом, из ожидающих выполнения, загружается в счетчик команд и выполнение продолжается с первой команды подпрограммы обработки прерывания.
Прерывание завершается командой возврата из прерывания (RTI), которая извлекает из стека и переписывает ранее сохраненное содержимое регистров и, таким образом, состояние процессора вновь становится таким, каким оно было до начала процедуры обслуживания прерывания.
Прерывания могут быть разрешены или запрещены битом маски (I битом) регистра кодов признаков и локальными битами масок разрешения в регистрах управления встроенной периферией. Биты масок прерываний в CCR регистре обеспечивают средства управления вложенными прерываниями.
В некоторых случаях они могут быть использованы для прерывания подпрограммы обработки прерывания (См. подраздел Вложенные или многократные прерывания). Однако вложенность нежелательна, поскольку существенно усложняет систему и редко увеличивает производительность системы.
По умолчанию, структура прерывания запрещает другие прерывания во время ввода последовательности прерывания установкой бита(ов) маски прерывания в CCR регистре. Поскольку регистр CCR восстанавливается во время возврата из прерывания, биты кодов признаков возвращаются в разрешающее состояние и, таким образом, могут быть обслужены дополнительные прерывания.
В процессе сброса бит I установлен и запрещает все прерывания. После минимальной инициализации системы программные средства, командами TAP и CLI, могут очистить бит I, разрешая, таким образом, прерывания.
|