Цитата Сообщение от alone Посмотреть сообщение
Нужен стек для регистров, иначе невозможно реализовать даже самые примитивные системные вызовы типа переключения страниц. Они должны быть реентерабельными, так что сохранять в переменные не могут, только в стек.
Аналогично стеку malloc тоже выделяет память так что храни свои регистры в выделенном регионе памяти. Скорость выделения конечно намного меньше чем через стек. Прийдется продумывать наперед какой кусок запросить чтобы не вызывать malloc сильно часто. Тяжелый и тормозной случай только рекурсия (не знаешь сколько памяти попросить). Но реентерабельность будет обеспеченна.

---------- Post added at 10:49 ---------- Previous post was at 10:36 ----------

Цитата Сообщение от alone Посмотреть сообщение
Это на математических задачах. А на задачах перемалывания памяти скорее раз в 30..40.
Ну классический forth с одним стеком давно умер. Я имел в виду виртуальную машину которая выполняет команды из очереди инструкций которые оперируют стеками данных через указатели на вершины стеков (команды типа (SP1+offset) + (SP1+offset+1) -> (SP2+offset)).