Nand2Tetris
用他们提供的工具,在这基础上写 And、Xor、Mux、DMux,再到 bit、register、RAM、RAM64,再到 ALU、CPU computer …
最核心的存储单元都是由 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 位跳转