Skip to content

OccupyMars2025/Nand2Tetris

Repository files navigation

goal: 2024/4/18 14:00 - 4/30 18:00: complete learning this course

Hack CPU Computer


  • (2024/4/18 14:00 - 16:30) coursera: Module 0: Introduction Roadmap
  • (4/18 16:30 - 4/19 10:30) book: (page 1-33) introduction to the hardware part
  • (4/19 10:30 - 4/20 18:48) chapter 1 + project 1: Boolean Logic
  • (4/20 18:48 - 4/21 11:00) chapter 2:  Boolean Arithmetic
  • (4/21 11:00 - 16:00) project 2:  Boolean Arithmetic
  • (4/21 16:00 - 4/22 12:00) chapter 3: Memory
  • (4/22 12:00 - 18:20) project 3: Memory
  • (4/22 18:20 - 4/24 18:00) chapter 4: Machine Language
  • (4/24 18:00 - 21:50) project 4: Machine Language
  • (4/24 21:50 - 4/27 11:10) chapter 5: Computer Architecture
  • (4/27 11:10 - ) project 5: Computer Architecture
  • (4/28 7:00 - 4/29 12:00) chapter 6: Assembler
  • (4/29 12:00 - 23:05) project 6: Assembler
  • (4/29 23:05 - 5/1 20:40) chapter 7: Virtual Machine I: Processing
  • (5/1 20:40 - 5/2 19:49) project 7
  • (5/2 19:49 - 5/4 11:14) chapter 8: Virtual Machine II: Control

Attention: Even if the emulator shows "Comparison ended successfully", it doesn't mean your code is correct. In my case, I have added an infinite loop to the end of the generated assembly code, but it doesn't work, the PC value becomes absurdly large where there is no assembly code. Refer to #4

nested function call: from VM commands to Hack assembly

./nand2tetris/projects/8/FunctionCalls/NestedCall/NestedCall.html

./nand2tetris/projects/8/FunctionCalls/NestedCall/NestedCallStack.html

  • (5/4 11:14 - 5/5 17:27) project 8