LC-3 simulator alternative: build the hardware under the ISA
The LC-3 (Little Computer 3) is the teaching computer from Yale Patt and Sanjay Patel's textbook Introduction to Computing Systems: a 16-bit machine with eight registers (R0 to R7), condition codes N, Z and P, and 15 instructions. Two simulators are common. LC3Tools, whose GitHub description calls it a complete overhaul of the LC-3 simulator used in EE 306 at The University of Texas at Austin, has a GUI for Windows, macOS and Linux (version 2.1.0 came out on May 20, 2026), command-line tools, and a unit-test API that instructors use for auto-graders. lc3web runs in the browser: paste assembly, assemble it, then step or run while the memory (programs start at x3000), the registers and a console update. The LC-3 simulators run programs on the LC-3; digiwleea has you build a computer's hardware yourself, gate by gate.
What the LC-3 simulators are good at
Learning assembly on a real, complete instruction set, the way Patt and Patel's course teaches it: loads and stores with several addressing modes, branches on N, Z and P, subroutines with JSR, and TRAP calls for input and output. LC3Tools adds what a course needs at scale, such as automatic grading of student programs, while lc3web needs nothing installed. If your class uses the LC-3, use one of these for the programming assignments. (digiwleea is an independent project, not affiliated with LC3Tools, lc3web, the textbook's authors or the University of Texas.)
How digiwleea is different
Patt and Patel's book starts from transistors and gates before it reaches the LC-3, and that bottom half is where digiwleea lives. In the browser you build NOT and NAND from CMOS transistors, then adders, an ALU, latches, registers, RAM, a program counter and a control unit, through a 40+ level course where every part is checked against its truth table, with an AI tutor (Wleea). The machine you end with is much smaller than the LC-3: an 8-bit accumulator CPU whose capstone runs a stored LOAD, ADD, STORE, HALT program, with the parts for SUB, JMP, JZ and OUT built in Act IV. It will not run LC-3 programs. What it gives you is the circuit view: why the LC-3 has an ADD and a NOT but no SUB (subtracting is adding the two's complement), and what a register, a decoder or a condition code is made of.
| LC-3 simulators | digiwleea | |
|---|---|---|
| Focus | Programming the LC-3 in assembly | Digital logic from transistors to a simple CPU |
| The CPU | Given: 16-bit, R0 to R7, 15 instructions | Built by you: 8-bit accumulator machine |
| Runs on | LC3Tools: Windows, macOS, Linux; lc3web: browser | Any modern browser |
| Made for | Patt and Patel courses, with auto-grading in LC3Tools | Self-paced learning, with checks on every part |
| Price | Free downloads and a free web version | Free lab and Act I; Premium for the full course |
The same addition on both machines
Add 5 and 10 and keep the sum. On the left, LC-3 assembly: we assembled and ran it in lc3web on 2026-10-31, and it halts with R3 = x000F (15). On the right, the program of digiwleea's capstone CPU, which the simulator runs to an accumulator of 15 and a stored 15. The LC-3 has eight registers, so it adds two registers; the digiwleea CPU has one accumulator, so it adds a memory value to it.
| LC-3 (lc3web) | digiwleea capstone CPU |
|---|---|
.ORIG x3000 | |
LD R1, X | LOAD 14 |
LD R2, Y | ADD 15 |
ADD R3, R1, R2 | |
ST R3, Z | STORE 13 |
HALT | HALT |
X .FILL #5 | memory 14 holds 5 |
Y .FILL #10 | memory 15 holds 10 |
Z .FILL #0 | memory 13 receives the sum |
To see what LD and ADD are made of, follow the CPU lesson and the instruction register, which holds the instruction while the control unit decodes it. The MARIE simulator comparison does the same for MARIE, the other common teaching machine.
No sign-up is needed to start: open the lab and place your first transistor, or read the free theory course. The account (and the AI tutor) are optional.
More comparisons: CPU and assembly simulators
See for yourself: build a logic gate from transistors in the simulator, then follow the path from sand to an 8-bit CPU.
Open the digiwleea lab →Frequently asked
What is the LC-3?
The LC-3 (Little Computer 3) is the teaching computer from Patt and Patel's textbook Introduction to Computing Systems: a 16-bit machine with eight general-purpose registers, condition codes N, Z and P, and 15 instructions.
Is there an online LC-3 simulator?
Yes. lc3web runs in the browser at wchargin.com/lc3web, with an assembler, step and run controls, registers, memory and a console. LC3Tools is a desktop app for Windows, macOS and Linux.
Why does the LC-3 have no subtract instruction?
Because subtraction is addition of the two's complement: NOT the number, ADD 1, then ADD. Keeping only ADD, AND and NOT for arithmetic and logic keeps the instruction set and the hardware small.
Can I build the LC-3 in digiwleea?
Not as a finished part. digiwleea's course builds a smaller 8-bit accumulator CPU from transistors up, and the lab lets you build circuits like the LC-3's registers, ALU and decoders yourself.