Architect Note


しがないPHPerのブログ

ひとりNand2Tetris(6)ーGo言語で作るアセンブラ

だいぶ間が空いてしまったけど、Nand2Tetrisもくもくの続き。ここからはソフトウェア層になります。まず作るべきはニーモニックの羅列を"Hack機械語"に変換するアセンブラ。単なる文字列操作の範疇なので割と簡単で、プログラミング言語を作ってる感覚はありません。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 Hackアセンブラについて アセンブラって単語を聞いてwktkしているバイナリアンな人がいたら申し訳ないのだけど、Nand..


ひとりNand2Tetris(5b) ーハードウェア編完遂!

Nand2Tetrisもくもくの続き。やっとComputerという回路が完成し、ハードウェアが完成になります。 次のアセンブラからは好きな言語を使って実装して良いとのことなので、専用の環境ともお別れですね。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 CPUの実装メモ これまでの集大成とも言えるCPUという回路。この本で言うところの「Hack」という名前の機械語が直接動作するように作らなければいけません。 基本的に、本に大体..


ひとりNand2Tetris(5a) ーアドレスを盛大に勘違いしていた

Nand2Tetrisもくもくの続き。5章はついにコンピュータを作るのですが、まだ途中です。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 Memory nand2tetris-memo/Memory.hdl at master ・ hirak/nand2tetris-memo 3章で作ったRAM16Kという16kBのチップと、新たに入出力を操作するためのメモリマップ領域を連結して、メモリが完成となります。 ただ、3章のRAM..


やり直しC言語:配列はファーストクラスではなかった

C言語を久しぶりに触ってやっと理解できたのが、配列は第一級オブジェクト(ファーストクラスオブジェクト) ではない 、ということです。 第一級オブジェクト - Wikipedia 第一級オブジェクト Wikipediaによると、第一級オブジェクトと呼ばれるものは以下の様な特徴を持つそうな。 無名のリテラルとして表現可能である。 変数に格納可能である。 データ構造に格納可能である。 それ自体が独自に存在できる(名前とは独立している)。 他のものとの等値性の..


ひとりNand2Tetris(4) ーしたしむアセンブリ言語

Nand2Tetrisもくもく昨日の続き。3章まででALUやRAMが揃ったので、一気にコンピュータを組み上げたいところですが、一旦作業は中断して、完成形のサンプルを見ていきます。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 そもそもどんなものを作りたいのか、イメージしないとダメですよね。 用語のメモ 機械語 ハードウェアが直接解釈できる言葉。どのピンに1/0を送るか、をまとめたもの。 機械語はハードウェアが解釈してくれるも..