![見出し画像](https://assets.st-note.com/production/uploads/images/87187134/rectangle_large_type_2_8b4b30cbf3606bc967cc235c196d714a.png?width=1200)
【図解】スタック
「コンパイラが何をしているのか」の旅に出る前に、少し準備をしておこうかと思います。
その一つが、この「スタック」です。
「スタック」というのは、数あるデータ構造の中で、おそらく最も基本的なものの一つです。
「FILO=First In Last Out」の性質を持ちます。
「FIFO=First In First Out」は「待ち行列」とも称されるもので、入れたものから順に出して行きます。
![](https://assets.st-note.com/img/1663554231322-XmJZC2HZeJ.png?width=1200)
一方、「FILO=First In Last Out」は入れた順と逆に出して行きます。
![](https://assets.st-note.com/img/1663554329776-6EmQ3sH6S5.png?width=1200)
待ち行列の FIFO は、わかりやすいですね。
ちょっと処理できないようなことがあれば横に置いて、後から順番に処理する。
「待ち行列」は普段の生活でもしょっちゅうお目にかかります。
一方、スタックの FILO はどうでしょう。
こんなデータ構造、使うようなことってあるのでしょうか。
ですが、アセンブラでは必須とも言える構造で、私が今まで出会ったアセンブラはすべてこのスタックを持っています。
今回はここまで。
(出し惜しみしているわけではないけれど、お絵かきするだけで時間がかかってしまって(笑))
この次は、アセンブラにおけるスタックの役割について見てみます。