言語から生成されたアセンブリを眺めていたらいろいろ知見があったので今日はそのことについてまとめていこうと思います。言語のソースコードです。足した結果を保持するだけのものになります。これをアセンブリコードに変換するためには以下のコマンドを用います。これを実行すると以下のようなアセンブリファイルが生成されます。今回は、プログラムはなぜ動くのかという本を読んだので、その感想を書いていきます。上でどのような原理で動作するのか?といったことが書かれている本になります。ぴったりな本だと思いました。解釈されるかや、演算に使われるレジスタの紹介などが書かれています。章ではデータをコンピュータ上でどう表現するかが書かれています。ついて知ることができます。不動小数点についてもこの章で学ぶことができます。分探索木などのデータ構造の紹介もされています。章ではメモリとディスクの関係性について書かれています。プログラムが実行時にディスクからメモリにロードされることや、ディスクキャッシュ、仮想メモリ、ページイン、ページアウトなどについても概要を知ることができます。ディスクについてはその物理構造であるセクタ、クラスタなどの紹介がされています。データの圧縮法(ランレングス符号化、ハフマン符号化)が簡潔に紹介されています。ハードウェアや、ソースコードを実行ファイルになるまでのコンパイラや、リンカについて説明がなされています。プログラムを実行するために、ディスクからメモリにロードし、変数の領域、関数の領域、スタック領域と、ヒープ領域が確保され、再配置情報から実行時のメモリアドレスが決まることについて書かれています。上で動き、また、ハードウェアを制御したりするかが書かれています。扱うかなどの外観を掴むことができます。