2015-09-23Nand2Tetrisもくもく昨日の続き。3章まででALUやRAMが揃ったので、一気にコンピュータを組み上げたいところですが、一旦作業は中断して、完成形のサンプルを見ていきます。—モダンなコンピュータの作り方そもそもどんなものを作りたいのか、イメージしないとダメですよね。用語のメモ機械語ハードウェアが直接解釈できる言葉。どのピンに1/0を送るか、をまとめたもの。機械語はハードウェアが解釈してくれるものなので、逆にハードウェアからすれば、この機械語の仕様を決定して、それを満たすように作ればいい、ということになります。機械語は人間の目には読みにくいので、1対1で意味のわかりやすい単語(ニーモニック)に置き換えて書きます。これをアセンブリ言語(Assembly)といいます。ハードウェアの用意した機械語によってアセンブリ言語は異なります。Nand2Tetrisでは"Hack言語"という独自仕様のアセンブリを使います。アセンブラアセンブリ言語を解釈して、機械語を生成するソフトウェアのこと。コンパイラの一種ということでいいのかな。実習これから作るマシンが解釈できるHack言語の仕様を理解し、適当なお題に合わせてアセンブリでプログラムを書いていきます。本来であればまだアセンブラやそれを解釈できるコンピュータは存在しない(これから作ろうとしてる)のですが、この章では予め用意されているアセンブラやCPUエミュレータを使って良いことになっています。ループ文もif文もないので、ひたすらGOTO相当のジャンプ命令でロジックを作っていく形になります。変数も好き勝手に作れなくて、計算に使いたかったら特定のレジスタに値を格納しないといけない。