すこしあやふやになったので確認。スタックのPUSHでアドレスの大きい方(高位)に進むのか、小さい方(低位)に進むのかは実装依存。 x86の場合は、PUSHするとアドレスの小さい方(低位)に進む。つまり、PUSHする度にESPの値は小さくなっていく。アドレス0x0の方向へ向かってESPの値は小さくなっていく。 スタックが「伸びる」とか「縮む」とか書くと印象によって逆方向になってしまうので注意。 PUSHすると「伸びる」んじゃないか、とかPOPすると「縮む」んじゃないか、というイメージがある。 しかし書籍によっては、x86に限定して、PUSHすると0x0の方向に進むので「縮む」、POPするとアドレスが大きくなるので「伸びる」と表記するものもあった。 「伸びる」「縮む」ではなくて「進む」「戻る」の方が良いかな? 「x86ではPUSHするとアドレス低位方向にスタックが伸びる」 「x86ではPUSHするとアドレス低位方向にスタックが進む」 ・・・あんまり変わらないか・・・。