Я знаю, что в архитектуре я лично знаком с (x86, 6502 и т.д.), стек обычно растет вниз (т.е. каждый элемент, нажатый на стек, приводит к уменьшению SP, а не к увеличению).
Мне интересно, какое историческое обоснование для этого. Я знаю, что в унифицированном адресном пространстве удобно запускать стек на противоположном конце сегмента данных (скажем), так что существует только проблема, если обе стороны сталкиваются посередине. Но почему стек традиционно получает верхнюю часть? Особенно учитывая, как это противоположно "концептуальной" модели?
(И обратите внимание, что в архитектуре 6502 стек также растет вниз, хотя он ограничен одной 256-байтной страницей, и выбор этого направления кажется произвольным.)