Поясните за 8051 мцушки

Ковырялся с прерываниями, и заметил, что он пишет какую-то гадость в 1 банк (не 0) R0-R1. Стал искать что к чему, и мне втирали, что при прерывани мцушка пишет аккумулятор и psw туда на всякий случай. Мол принято у них так.

Потом понял, что наврали, и там просто стоит стэк по-умолчанию, и он пишет туда pc. Лан, ок. Вопрос - так сохраняет он акк и psw при прерывании в итоге или нет? Может, просто не туда? И это что, их тогда нельзя менять в обработке прерывания?
3 дней назад от Mrs Evil

1 ответ



0 голосов
сохраняет адрес возврата (16-битный) в стеке. Указатель стека (SP) по умолчанию на 0x07, то есть в районе второго банка регистров. Можно назначить другое значение указателя. При входе в прерывание или при вызове подпрограммы (CALL) он автоматичестки инкрементируется, при выходе из прерывания (RETI) или из подпрограммы (RET) - декрементируется.
AСС и PSW он не сохраняет, но можно самому поместить их в стек push acc, push psw. Извлекать в обратном порядке - pop psw, pop acc
2 дней назад от ChristalSeri

Связанные вопросы

2 ответов
1 ответ