コンピューター理論、チョットデキルようになりたい

コンピュータサイエンスの学び直しです

2020-02-01から1ヶ月間の記事一覧

学び直し34日目:6章 アセンブラ:プロジェクトまとめ(6章終了)

記録 6章まとめ 今日の筋トレ 記録 main プログラムを書いたのだけど、モジュール読み込みでこけてしまいうまく動かない…Python の調査になるのでいったん飛ばしちゃおう。path がなんかアカンのかな。github.com 6章まとめ 機械語の仕様と、機械語とニーモ…

学び直し33日目:6章 アセンブラ:プロジェクト-Symbol Tableモジュール

記録 Symbol Table モジュール 次やること 今日の筋トレ 記録 引き続き Hack コンピュータのアセンブラを Python で実装中。今日は Symbol と実アドレスを紐づけるための Symbol Table モジュールを実装(写経)。github.com Symbol Table モジュール Symbol…

学び直し32日目:6章 アセンブラ:プロジェクト-Codeモジュール

記録 Code モジュール 次やること 今日の筋トレ 記録 引き続き Hack コンピュータのアセンブラを Python で実装中。今日はアセンブリ言語のニーモニックをバイナリコードへ変換するモジュールを書いた。相変わらず以下を参考にさせていただいている。github.…

学び直し31日目:6章 アセンブラ:プロジェクト-Parserモジュール

記録 Parser モジュール 次やること 今日の筋トレ 記録 Hack コンピュータのアセンブラを Python で実装中。アセンブラって結局のところ、アセンブリ言語をある規則のもと 0/1 に書き換えるテキスト変換プログラムなのでは。。自力でがんばろうと思ったけど…

学び直し30日目:6章 アセンブラ:実装、展望

記録 仕様 アセンブラを構成するモジュール シンボルを含むアセンブラ 展望 今日の筋トレ 記録 アセンブラをどうやって実装するか見た。4つのモジュールから構成されるようにすればよさげ。また、アセンブラはどの言語を用いても作れるみたいなので、割とな…

学び直し29日目:6章 アセンブラ:Hackアセンブラからバイナリへの変換仕様

記録 ファイルの種類 シンボル 今日の筋トレ 記録 アセンブリコマンドとバイナリコードの対応表を基本的には良いすればよいわけだが、その対応表を作るにあたり規約を定められている。 ファイルの種類 バイナリコードのファイル拡張子が .hack、アセンブリ言…

学び直し28日目:6章 アセンブラ:背景

記録 シンボル 今日の筋トレ 記録 ここからソフトウェア階層の話。アセンブリ言語を0/1 表記の機械語に変換するアセンブラについて学ぶ。基本的には「決められたコマンドをそれに対応する機械語(バイナリ表記)の変換する」作業がされてるっぽい(変換テー…

学び直し27日目第二ラウンド:5章 コンピュータアーキテクチャ⑧:プロジェクト-Computer(5章終了)

記録 Computer 5章おさらい 今日の筋トレ 記録 Memory と CPU ができたので、いよいよ Computer の HDL を実装した。拍子抜けするくらい簡単だったw。部品をきちんと用意できれば、コンピュータは簡単につくれるのだなぁ。けっこう時間かかったけど、楽しか…

学び直し27日目:5章 コンピュータアーキテクチャ⑦:プロジェクト-CPU(3)

記録 コツ CPU 今日の筋トレ 記録 やっと CPU 書き終えた。自力でがんばろうとしたけど、結局以下を参考にさせていただいてしまった。。 blog.tojiru.net 考え方はだいたいあっていたが、その先の地道な作業を考え抜く力が不足している。ともあれ、形にはな…

学び直し26日目:5章 コンピュータアーキテクチャ⑥:プロジェクト-CPU(2)

記録 今日の筋トレ 記録 CPU の HDL を作成中。前回の考え方に従い、結線をどうすればいいか探り探り書いている。ALU の仕様の復習をやりつつ地道にやっている。何日かかるやら。 今日の筋トレ A メニュー予定(ダンベル重量 5kg) ダンベルフライ リングフィ…

学び直し25日目:5章 コンピュータアーキテクチャ⑤:プロジェクト-CPU(1)

記録 考え方 A, C 命令共通 A 命令の場合 C 命令の場合 今日の筋トレ 記録 Memory に続き、CPU の HDL を考え中。まだコードは書けてないけど、おぼろげに何をやったらよいかは見えてきた気がします。 考え方 A 命令、C 命令(4章参照)の意味をひとつずつ理…

学び直し24日目:5章 コンピュータアーキテクチャ④:展望、プロジェクト-Memory

記録 考え方 Memory のコード 今日の筋トレ 記録 Hack コンピュータの Memory の HDL を実装した。既存回路の使いまわしで楽チンかと思ったけど、アドレスの扱い方の理解が足りてなくて思いのほか苦戦。。CPU とかどうなるんだろう…。またこのお方のお世話に…

学び直し23日目:5章 コンピュータアーキテクチャ③:実装

記録 今日の筋トレ 記録 Hack ハードウェアの実装内容について読んだ。HDL を書くのが待ち遠しい。 CPU は複雑そうだが、3章でやった ALU, PC, レジスタを復習しながら試行錯誤するのが楽しそう。 データメモリ(RAM)については、SCREEN と KEYBOARD のメモ…

学び直し22日目:5章 コンピュータアーキテクチャ②:仕様

記録 今日の筋トレ 記録 Hack ハードウェアのプラットフォーム仕様を読んだ。仕様についても、すんなり入ってきた気がする。次の実装が楽しみだ。メモリマップやレジスタマップが何を意味するのか、ようやく理解できた気がする。どこをいじったら何が動くの…

学び直し21日目:5章 コンピュータアーキテクチャ①:背景

記録 プログラム内蔵方式 ノイマン型アーキテクチャ メモリ CPU CPU がやること 入出力 今日の筋トレ 記録 Hack というコンピュータを構築する。背景を読んだ。ほとんど知ってることだったけど、正確な定義を再確認できたのは有意義だった。 プログラム内蔵…

学び直し20日目:4章 機械語⑥(4章完了)

記録 fill.asm 今日の筋トレ 記録 IO操作について、、、写経。 github.com「描画位置の初期化」「押されたかどうか判定して色を設定」「設定された色で範囲をすべて塗りつぶす」みたいな感じだった(はず)。飽きてきちゃったので先に進む。 fill.asm // Thi…

学び直し19日目:4章 機械語⑤

記録 mult.am 今日の筋トレ 記録 機械語で掛け算を書いた。考え方としては、「R0 の値を R1 の値の回数だけ足して、都度 R2 を更新する」というもの。まさに掛け算の考え方。自力ではちょっと厳しかったので、先人のコードを拝見しながら書きつつ、エミュレ…

学び直し18日目:4章 機械語④

記録 今日の筋トレ 記録 「実装やるぞ!」と思ったけど、提供されるツールの使い方を読んどけとのことなのでそちらをぼちぼち眺めてる。 アセンブラチュートリアル: https://b1391bd6-da3d-477d-8c01-38cdf774495a.filesusr.com/ugd/44046b_759f4f811ad14e1…

学び直し17日目:4章 機械語③

記録 今日の筋トレ 記録 仕様について一通り読み終えた。明日から実装!たのしみだ。 A 命令や C 命令の仕様が、ハードとソフトのちょうど境目だと理解した。何 bit の信号を扱うか、その各 bit がどのような意味を持たせるのか定義することで、それに対応し…

学び直し16日目:4章 機械語②

記録 機械語で操作されるレジスタ D レジスタの用途 A レジスタの用途 M レジスタの用途 その他 機械語の種類 A 命令 C 命令 今日の筋トレ 記録 Hack 機械語の仕様を読んでる途中。機械語で何を指示しているのかおぼろげにわかってきた。ALU、D レジスタ、A …

学び直し15日目:4章 機械語①

記録 今日の筋トレ 記録 背景を読み終えた。 「ハードウェアとソフトウェアが、機械語において交わる。プログラマーの抽象的思考がシリコン上で実行される物理的操作に、機械語において変換される。」とのこと。つまり、自分が一番疑問に思っていて知りたか…