学び直し16日目:4章 機械語②
記録
Hack 機械語の仕様を読んでる途中。機械語で何を指示しているのかおぼろげにわかってきた。ALU、D レジスタ、A レジスタ、M レジスタの操作方法を定義したのが機械語。どのような計算をするか、どこの値を操作するのか、何をどこに格納するか、次はなにをするか命令してるんだな、と理解。
機械語で操作されるレジスタ
D レジスタの用途
- 16bit を使って、「comp, dest, jump」を設定する。機械語としては、dest = comp;jump という文法表記。
- comp領域:D, A, M レジスタに対して、ALU でどのような演算を実行するか設定する。7bit あるので 128 通り定義できるが、Hack の場合は28命令。何ができるかは、ALU の仕様を思い出そう。
- dest領域:ALU の演算結果をD, A, M レジスタのどこに格納するか決める。dest は 3bit あるので 8 通りすべて選択可能。
- jump領域:ALU の出力結果応じて、次に何をするか決める。出力結果の組み合わせは、正、負、ゼロの3つで8通り。
A レジスタの用途
- ①定数を代入する
- ②メモリ操作を行う
- ③移動先を指定する。
今日の筋トレ
今日もリングフィットやるか。