nand2tetris/vm/README.md

619 B

VM Implementation

We have 8 segments:

  • argument
  • local
  • this/that
  • pointer
  • static (shared)
  • constant (shared)
  • temp (shared)
RAM Address Usage
0-15 Virtual Registers
16-255 Static Variables (shared)
256-2047 Stack
2048-16384 Heap
16384-24575 Memory mapped I/O
Register Name Usage
RAM[0] SP Stack Pointer
RAM[1] LCL local
RAM[1] ARG argument
RAM[3] THIS this
RAM[4] THAT that
RAM[5-12] temp Segment
RAM[13-15] General Purpose Registers