私が個人的に精通しているアーキテクチャ(x86、6502など)では、スタックは通常下向きに成長します(つまり、スタックにプッシュされるすべてのアイテムは、増加したSPではなく減少したSPになります)。
これの歴史的根拠について疑問に思っています。統合されたアドレススペースでは、スタックをデータセグメントの反対側から(たとえば)開始するのが便利なので、2つの側が中央で衝突した場合にのみ問題が発生します。しかし、なぜスタックは伝統的にトップの部分を獲得するのでしょうか?特に、これが「概念」モデルとは正反対であることを考えると、
(また、6502アーキテクチャーでは、単一の256バイトのページにバインドされているにもかかわらず、スタックも下方向に大きくなることに注意してください。この方向の選択は任意です。)