2020-02-01から1ヶ月間の記事一覧
記録 6章まとめ 今日の筋トレ 記録 main プログラムを書いたのだけど、モジュール読み込みでこけてしまいうまく動かない…Python の調査になるのでいったん飛ばしちゃおう。path がなんかアカンのかな。github.com 6章まとめ 機械語の仕様と、機械語とニーモ…
記録 Symbol Table モジュール 次やること 今日の筋トレ 記録 引き続き Hack コンピュータのアセンブラを Python で実装中。今日は Symbol と実アドレスを紐づけるための Symbol Table モジュールを実装(写経)。github.com Symbol Table モジュール Symbol…
記録 Code モジュール 次やること 今日の筋トレ 記録 引き続き Hack コンピュータのアセンブラを Python で実装中。今日はアセンブリ言語のニーモニックをバイナリコードへ変換するモジュールを書いた。相変わらず以下を参考にさせていただいている。github.…
記録 Parser モジュール 次やること 今日の筋トレ 記録 Hack コンピュータのアセンブラを Python で実装中。アセンブラって結局のところ、アセンブリ言語をある規則のもと 0/1 に書き換えるテキスト変換プログラムなのでは。。自力でがんばろうと思ったけど…
記録 仕様 アセンブラを構成するモジュール シンボルを含むアセンブラ 展望 今日の筋トレ 記録 アセンブラをどうやって実装するか見た。4つのモジュールから構成されるようにすればよさげ。また、アセンブラはどの言語を用いても作れるみたいなので、割とな…
記録 ファイルの種類 シンボル 今日の筋トレ 記録 アセンブリコマンドとバイナリコードの対応表を基本的には良いすればよいわけだが、その対応表を作るにあたり規約を定められている。 ファイルの種類 バイナリコードのファイル拡張子が .hack、アセンブリ言…
記録 シンボル 今日の筋トレ 記録 ここからソフトウェア階層の話。アセンブリ言語を0/1 表記の機械語に変換するアセンブラについて学ぶ。基本的には「決められたコマンドをそれに対応する機械語(バイナリ表記)の変換する」作業がされてるっぽい(変換テー…
記録 Computer 5章おさらい 今日の筋トレ 記録 Memory と CPU ができたので、いよいよ Computer の HDL を実装した。拍子抜けするくらい簡単だったw。部品をきちんと用意できれば、コンピュータは簡単につくれるのだなぁ。けっこう時間かかったけど、楽しか…
記録 コツ CPU 今日の筋トレ 記録 やっと CPU 書き終えた。自力でがんばろうとしたけど、結局以下を参考にさせていただいてしまった。。 blog.tojiru.net 考え方はだいたいあっていたが、その先の地道な作業を考え抜く力が不足している。ともあれ、形にはな…
記録 今日の筋トレ 記録 CPU の HDL を作成中。前回の考え方に従い、結線をどうすればいいか探り探り書いている。ALU の仕様の復習をやりつつ地道にやっている。何日かかるやら。 今日の筋トレ A メニュー予定(ダンベル重量 5kg) ダンベルフライ リングフィ…
記録 考え方 A, C 命令共通 A 命令の場合 C 命令の場合 今日の筋トレ 記録 Memory に続き、CPU の HDL を考え中。まだコードは書けてないけど、おぼろげに何をやったらよいかは見えてきた気がします。 考え方 A 命令、C 命令(4章参照)の意味をひとつずつ理…
記録 考え方 Memory のコード 今日の筋トレ 記録 Hack コンピュータの Memory の HDL を実装した。既存回路の使いまわしで楽チンかと思ったけど、アドレスの扱い方の理解が足りてなくて思いのほか苦戦。。CPU とかどうなるんだろう…。またこのお方のお世話に…
記録 今日の筋トレ 記録 Hack ハードウェアの実装内容について読んだ。HDL を書くのが待ち遠しい。 CPU は複雑そうだが、3章でやった ALU, PC, レジスタを復習しながら試行錯誤するのが楽しそう。 データメモリ(RAM)については、SCREEN と KEYBOARD のメモ…
記録 今日の筋トレ 記録 Hack ハードウェアのプラットフォーム仕様を読んだ。仕様についても、すんなり入ってきた気がする。次の実装が楽しみだ。メモリマップやレジスタマップが何を意味するのか、ようやく理解できた気がする。どこをいじったら何が動くの…
記録 プログラム内蔵方式 ノイマン型アーキテクチャ メモリ CPU CPU がやること 入出力 今日の筋トレ 記録 Hack というコンピュータを構築する。背景を読んだ。ほとんど知ってることだったけど、正確な定義を再確認できたのは有意義だった。 プログラム内蔵…
記録 fill.asm 今日の筋トレ 記録 IO操作について、、、写経。 github.com「描画位置の初期化」「押されたかどうか判定して色を設定」「設定された色で範囲をすべて塗りつぶす」みたいな感じだった(はず)。飽きてきちゃったので先に進む。 fill.asm // Thi…
記録 mult.am 今日の筋トレ 記録 機械語で掛け算を書いた。考え方としては、「R0 の値を R1 の値の回数だけ足して、都度 R2 を更新する」というもの。まさに掛け算の考え方。自力ではちょっと厳しかったので、先人のコードを拝見しながら書きつつ、エミュレ…
記録 今日の筋トレ 記録 「実装やるぞ!」と思ったけど、提供されるツールの使い方を読んどけとのことなのでそちらをぼちぼち眺めてる。 アセンブラチュートリアル: https://b1391bd6-da3d-477d-8c01-38cdf774495a.filesusr.com/ugd/44046b_759f4f811ad14e1…
記録 今日の筋トレ 記録 仕様について一通り読み終えた。明日から実装!たのしみだ。 A 命令や C 命令の仕様が、ハードとソフトのちょうど境目だと理解した。何 bit の信号を扱うか、その各 bit がどのような意味を持たせるのか定義することで、それに対応し…
記録 機械語で操作されるレジスタ D レジスタの用途 A レジスタの用途 M レジスタの用途 その他 機械語の種類 A 命令 C 命令 今日の筋トレ 記録 Hack 機械語の仕様を読んでる途中。機械語で何を指示しているのかおぼろげにわかってきた。ALU、D レジスタ、A …
記録 今日の筋トレ 記録 背景を読み終えた。 「ハードウェアとソフトウェアが、機械語において交わる。プログラマーの抽象的思考がシリコン上で実行される物理的操作に、機械語において変換される。」とのこと。つまり、自分が一番疑問に思っていて知りたか…