図3.2からは、hello.c→hello.s→hello.o→helloというようにファイルが変換されてコンパイルが行われている様子がわかります。 hello.sのアセンブラのソースの段階まではテキストファイルであり、そのまま中身を表示することができます。それ以降の、リロケータブルオブジェクトファイルのhello.oと実行バイナリファイルのhelloはバイナリファイルのため、GNU binutilsに含まれるobjdumpという一種の逆アセンブラを使って表示しています。 なお、ここではgccに、最適化オプションの「-O2」のほかに、別の最適化オプションのひとつである-fomit-frame-pointerを付け、アセンブラのコードがさらに小さくなるようにしています。 図3.2 コンパイルの段階によるファイルの中身の移り変わり hello.c #include <stdio.h> int