Skip to content

Nand2Tetris

从一根 NAND 门堆到一台能跑的电脑

项目有意思,也烦人。用他们提供的工具,在这基础上写 And、Xor、Mux、DMux,再到 bit、register、RAM、RAM64,再到 ALU、CPU。

最核心的存储单元都是由 register(寄存器)这样的电路构成的。

  • 16 个 bit 构成 register
  • 16 个 register 构成 RAM

Memory 包括 RAM、screen、keyboard。RAM 是一排排格子。Screen 也是一排排格子,唯一区别是格子后面连着发光的东西:格子里是 1,对应像素就亮/黑。Keyboard 一个格子:按下某个键,硬件把对应的 ASCII 塞进去。

指令大概两类:

  • A 指令(Address):0 + 15 位数值
  • C 指令(Compute):111 + a + 6 位计算 + 3 位目的地 + 3 位跳转

学计算机如果只停在「会用框架」,会觉得已经到顶了。从门电路往上走一遍,会重新感觉到:所谓电脑,就是开关叠出来的。