teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

用語の揺らぎを修正

2020/01/30 16:31

投稿

SaitoAtsushi
SaitoAtsushi

スコア5740

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  かなり飛躍した私の想像ではあるのですが、抽象的なデータ構造としてのスタックとそれを実現する仕組みが繋がっていないとこの本の説明では躓きそうな気がします。
2
2
 
3
- メモリの特定の場所を `ESP` が指していて、それを「スタックのテッペンということにする」という約束によってスタックとしての挙動を実現しているわけです。 ですから、スタックポインタを減算するということはスタックの頭が高くなるということを意味します。 それだけでは意味のあるデータは積まれてはいませんが、空っぽの場所が出来るのでそこをローカル変数の格納場所として使うということです。
3
+ メモリの特定の場所を `ESP` が指していて、それを「スタックのテッペンということにする」という約束によってスタックとしての挙動を実現しているわけです。 ですから、 `ESP` を減算するということはスタックの頭が高くなるということを意味します。 それだけでは意味のあるデータは積まれてはいませんが、空っぽの場所が出来るのでそこをローカル変数の格納場所として使うということです。
4
4
 
5
5
  そしてスタックは様々な処理で積んだり下ろしたりするので今の関数のローカル変数として使う分の基準にするために `EBP` をしおりのように挟んでおくという感じです。
6
6