Цитата(aiwa @ Mar 16 2017, 18:45)

Некоторые компиляторы создают два отдельных стека "hard" и "soft". hwstk_size - это "hardware stack".
hard-stack - это стандартный аппаратный стек, адресуется указателем стека SP, "push" и "pop" - это его команды и предназначен он
исключительно для помещения в него адресов возврата при вызове функций и прерываний.
Для передаваемых параметров и локальных переменных создается soft-stack. Он адресуется парой регистров Y и сохранение/извлечение
из него происходит с помощью команд загрузки/сохранения через Y.
Как правило, soft-stack требует большего размера нежели hard-stack.
Понятно, что имеете в виду под soft-стеком. Некоторые компиляторы туда-же складывают локальные переменные.
Просмотрел листинг и увидел, что есть адресация временных переменных по y+62!!!
Изменение значения y Не стал отслеживать, но похоже, что +62 явно выйдет за пределы....
Полагал, что компилятор должен отслеживать использование памяти....
Поправил исходник так, чтобы избавиться от таких временных переменных. Буду смотреть результат...