NandGameの攻略ページを作成しました
2023年夏、Turing Completeに挑戦し、その挑戦記録をまとめあげて、攻略記事として公開しました。
2023年10月後半から、類似のゲームであるNandGameに挑戦しました。
コツコツと攻略記事を公開し、 ...
Transistor level【NandGame編】
ここからOptional Levelsに入ります。
すでにNand、Invert、Norの回路を実装しましたが、ここではCMOS型のトランジスターを利用して回路を実装します。
Push argument、Pop argument【NandGame編】
Push argumentレベルのゴールは、マクロPUSH_ARGを実装することです。
マクロPUSH_ARGは、ARGSと”index”(ARGSから見た相対位置) ...
Push local、Pop local【NandGame編】
Push localレベルのゴールは、マクロPUSH_LOCALを実装することです。
マクロPUSH_LOCALは、LOCALSと”index”(LOCALSから見た相対位 ...
Call、Function、Return【NandGame編】
関数は、ソフトウェアにおいておそらくもっとも重要な抽象化の概念です。
関数はコードの集まりであり、いくつかの入力(引数と呼ばれる)を受け取り、処理に使用するローカルストレージを持ち、処理結果を返します。
関 ...
Push Static、Pop Static【NandGame編】
Push Staticレベルのゴールは、マクロPUSH_STATICを実装することです。
マクロPUSH_STATICは、”address”というメモリーアドレス値の内容 ...
Push Memory、Pop Memory【NandGame編】
Push Memoryレベルのゴールは、マクロPUSH_MEMORYを実装することです。
マクロPUSH_MEMORYは、次のように動作します。
①スタックの一番上にある値をPOPし ...
Not、Goto、If-goto【NandGame編】
Notレベルのゴールは、マクロNOTを実装することです。
マクロNOTは、スタックの一番上のデータをビット反転(2進数の各桁でビット反転)します。
Notレベルを解く
POPしてからビッ
Gt、Lt【NandGame編】
Gtレベルのゴールは、マクロGTを実装することです。
マクロGTは、スタックから上から2つの値をPOPして(取り出して)比較します。最初の値が2番目の値より大きければ値-1(=0xFFFF)をPUSHし、そうでな ...
Eq【NandGame編】
Eqレベルのゴールは、マクロEQを実装することです。
マクロEQは、スタックから上から2つの値をPOPして(取り出して)比較します。等しい場合は-1(=0xFFFF)をPUSHし、そうでなければ0(=0x0000 ...