Sé que en las arquitecturas con las que estoy familiarizado (x86, 6502, etc.), la pila normalmente crece hacia abajo (es decir, cada elemento que se introduce en la pila da como resultado un SP decrementado, no uno incrementado).
Me pregunto cuál es la razón histórica de esto. Sé que en un espacio de direcciones unificado, es conveniente comenzar la pila en el extremo opuesto del segmento de datos (digamos), por lo que solo hay un problema si los dos lados chocan en el medio. Pero, ¿por qué la pila obtiene tradicionalmente la parte superior? ¿Especialmente dado que esto es lo opuesto al modelo "conceptual"?
(Y tenga en cuenta que en la arquitectura 6502, la pila también crece hacia abajo, aunque está limitada a una sola página de 256 bytes, y esta elección de dirección parece arbitraria).