Ответ: я тоже подумал - может на асме попробовать переписать, но с другой стороны какая разница на си или на асме - что от этого меняется? Что ты подразумеваешь под словами "правильно сформировать кадр стека"? Мне кажется микрокосу все равно что лежит в стеке, а компиллер по слову interrupt сам сохраняет регистры (хотя не все - в данном случае только R10, R12, R13, R14, R15) - как это может влиять на работу микрокоса?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)