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
Watch the lessons alongside the projects. Check current enrollment and access options on Coursera.
The assignments and supporting materials.
Use the official browser IDE link on this page. The browser version requires no local installation.
The six projects
-
Boolean Logic
Build and test basic logic gates.
How do simple on/off inputs produce useful logical operations?
-
Boolean Arithmetic
Build adders and an arithmetic logic unit.
How does a circuit calculate?
-
Memory
Build registers, RAM, and a program counter using the supplied primitives.
How does a computer remember values?
-
Machine Language
Write assembly programs, including multiplication, and run them in the supplied CPU emulator.
How do instructions change registers, memory, and program flow?
-
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?
-
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:
- Watch or read the relevant lesson.
- Predict what a small example will do.
- Attempt the implementation ourselves.
- Run the supplied tests and investigate failures.
- Make one change and explain its effect.
- Ask AI for explanations, hints, and debugging help when stuck.
No fixed deadlines yet. Move forward when we can run the project and explain its main idea.
Supporting references
- MIT Computation Structures — videos and worksheets ocw.mit.edu
- MIT Computation Structures — lab collection computation-structures.github.io
- Paul Carter’s free PC Assembly Language book A supporting reference for assembly concepts. Its examples target 32-bit x86, whereas our main course uses the teaching architecture called Hack.
- Harvard CS61 — assembly exercises For later practice connecting these concepts to real processor assembly.
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
- Question one (edit me)
- Question two (edit me)
- Question three (edit me)