Work in progress

Assembly at CelerySticks

Discovering how computers work, from logic gates to assembly.

Our goal

We know how to write code, but we want to understand what happens underneath it: how logic gates become arithmetic, memory, and a processor—and how instructions make that processor do something.

Our plan

Follow Nand to Tetris Part I in its existing order. Complete the practical projects rather than just watching lectures. Use MIT, Harvard, and Paul Carter as supporting references when needed.

Get started

Video course
Nand to Tetris Part I

Watch the lessons alongside the projects. Check current enrollment and access options on Coursera.

coursera.org
Official project index
Course page & projects

The assignments and supporting materials.

nand2tetris.org
Tools and browser IDE
Software & web IDE

Use the official browser IDE link on this page. The browser version requires no local installation.

nand2tetris.org

The six projects

  1. Boolean Logic

    Build and test basic logic gates.

    How do simple on/off inputs produce useful logical operations?

  2. Boolean Arithmetic

    Build adders and an arithmetic logic unit.

    How does a circuit calculate?

  3. Memory

    Build registers, RAM, and a program counter using the supplied primitives.

    How does a computer remember values?

  4. Machine Language

    Write assembly programs, including multiplication, and run them in the supplied CPU emulator.

    How do instructions change registers, memory, and program flow?

  5. Computer Architecture

    Connect the components into the simulated Hack computer and run programs on it.

    How does the hardware execute the instructions we just learned?

  6. Assembler

    Write a program that translates Hack assembly into binary machine instructions. We can use C#.

    How do readable instructions become the bits the processor executes?

Project 4 uses an existing emulator, so we practice writing assembly on a computer someone else built. Project 5 then asks us to build that computer ourselves.

How we will study

For each project:

No fixed deadlines yet. Move forward when we can run the project and explain its main idea.

Supporting references

What comes after Part I?

Decide together after finishing. A likely next step is tracing small compiled programs in a debugger on a real processor. Part I builds the hardware and assembly foundation; it does not cover the entire path from C# through the .NET runtime to machine execution.

Questions for next session