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