[an error occurred while processing this directive] [an error occurred while processing this directive]
Безглючнее, чем это делает IAR C, не придумаешь.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено kons 15 февраля 2002 г. 16:31
В ответ на: Как в AVR сохранить регистр состояния (флаги) в стек. Только косвенно по физическому адресу? отправлено stur 15 февраля 2002 г. 14:16

Упрощенно (IAR делает это в стеке данных по указ. Y).
PUSH Rtemp
IN Rtemp,SREG
PUSH Rtemp
.......;Rtemp можно использовать во время обработки прерывания
.......
POP Rtemp
OUT SREG,Rtemp
POP Rtemp
RETI
Все остальные способы следует применять только при крайней необходимости - если действительно требуется предельное быстродействие и лишние 4 такта (PUSH+POP) лечат.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru