Занесение в стек
Для обеспечения совместимости объектных кодов фрейм стека прерывания M68HC08 выполнен аналогично семейству M6805, как это показано на Рис.13. Регистры заносятся в стек в последовательности: PC, X, A и CCR. Извлечение из стека производится в обратном порядке. Отметим, что бит I (внутренняя маска) CCR не устанавливается до тех пор, пока CCR находится в стеке в течение шести циклов процедуры помещения прерывания в стек. Указатель стека указывает на следующее возможное (пустое) положение стека.
Примечание: Для обеспечения совместимости с семейством M6805 регистр H (старший байт индексного регистра), в процессе обработки прерывания, в стек не заносится. Если подпрограмма обработки прерывания модифицирует H или используется режим индексной адресации, то пользователь сам должен заблаговременно позаботиться о его сохранении и восстановлении. См. Рис.12.
IRQINT PSHH
|
| Подпрограмма обслуживания прерывания
|
|
PULH
RTI
Рис. 12. Сохранение содержимого регистра H
Рис. 13. Фрейм стека прерывания
|