• ベストアンサー

スタックの伸張方向

スタックの伸張方向が、高いアドレス->低いアドレス、であるのは歴史的な理由がある、と「コンピュータの構成と設計」という本に書いてあったのですが、どういう歴史的理由なのでしょうか? ご存知の方は教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

想像です 昔はメモリも少なく、メモリ保護機能に乏しかった(非RAM領域へのアクセスが補足できないし、メモリには実アドレスでしかアクセスできなかった…特別なハードやスタックチェックのコードを埋め込めばできるけれども) そのため、十分に余裕を持ってスタックを確保することができなかった(スタックをどの程度取っておけばいいのかというのをもとめる事は面倒で難しい) 低->高へスタックを伸ばすと、RAMの終端を越える可能性が高くなる(RAMの終端を越えると暴走する可能性が非常に高くなる) 高->低にすれば、RAMの終端から始まるのでとりあえずRAM上にスタックがある可能性が高くなる(OSやプログラム・データをつぶす可能性はあるが、プログラムを低位アドレスにおけば、ある程度の余裕ができやすい)のでこちらを採用した 基本的な設計思想を継承してきているので、今のCPUもスタックは高->低を採用している

candlefire
質問者

お礼

大変参考になりました。 どうも有り難うございました。

関連するQ&A