MARIE simulator alternative: build an accumulator CPU yourself
MARIE (a Machine Architecture that is Really Intuitive and Easy) is the teaching computer from Linda Null and Julia Lobur's textbook The Essentials of Computer Organization and Architecture. MARIE.js is a free, open-source (MIT) simulator for it that runs in the browser at marie.js.org; its README says it is used in Monash University's FIT1047 unit. You type MARIE assembly, press Assemble, then Run, Step or Micro step while the registers (AC, IR, MAR, MBR, PC, IN and OUT), the memory grid and a data path view update. MARIE.js runs programs on a finished accumulator machine; digiwleea has you build one, step by step.
What MARIE.js is good at
Learning assembly language and the fetch-decode-execute cycle on a small, clean architecture. The instruction set panel lists every instruction with its opcode and register transfer, such as Load X (opcode 1, AC gets M[X]) and SkipCond for conditional branches, and Micro step shows the register transfers inside one instruction. Nothing to install, and if your course uses the Null and Lobur textbook, it is the matching tool. (digiwleea is an independent project, not affiliated with MARIE.js, Monash University or the textbook's authors.)
How digiwleea is different
MARIE.js gives you the machine; digiwleea has you make it. In the browser you build NOT and NAND from CMOS transistors, then adders, an ALU, registers, RAM, a program counter, an accumulator and a control unit, and wire them into an 8-bit CPU through a 40+ level course where every part is checked against its truth table, with an AI tutor (Wleea). The course CPU is an accumulator machine in the same spirit as MARIE, but much smaller: 8-bit words and an instruction byte with a 4-bit opcode and a 4-bit address. The capstone CPU runs LOAD, ADD, STORE and HALT, and Act IV then builds the parts for SUB, JMP, JZ and OUT, where MARIE has 16-bit words, 12-bit addresses, conditional skips and indirect addressing from the start. In return you see every wire of it. Learning with the MARIE textbook? Build the parts here to see what Load and Add do in gates, then write longer programs in MARIE.js.
| MARIE.js | digiwleea | |
|---|---|---|
| Focus | Assembly programming on the MARIE architecture | Digital logic from transistors to a simple CPU |
| The CPU | Given, with a data path view | Built by you, part by part |
| Word size | 16-bit words, 12-bit addresses | 8-bit words, 4-bit addresses |
| Instructions | Load, Store, Add, Subt, Input, Output, Halt, SkipCond, Jump, indirect and subroutine instructions | LOAD, ADD, STORE, HALT in the capstone CPU; parts for SUB, JMP, JZ and OUT in Act IV |
| Runs on | Any modern browser | Any modern browser |
| Price | Free, MIT license | Free lab and Act I; Premium for the full course |
One program on both machines
Load 5, add 10 and store the sum. Both runs below were checked on 2026-10-31. On the left, MARIE assembly in MARIE.js: it halts normally with AC = 000F (15) and 15 stored at Z, and the machine code starts 1004 3005 2006. On the right, the program of the course's capstone CPU, which assembles to 1E 2F 3D F0: run on the simulator, the accumulator goes 0, 5, 15, the stored word becomes 15 and the HALT flag stays high.
| MARIE (MARIE.js) | digiwleea capstone CPU |
|---|---|
Load X | LOAD 14 |
Add Y | ADD 15 |
Store Z | STORE 13 |
Halt | HALT |
X, DEC 5 | memory 14 holds 5 |
Y, DEC 10 | memory 15 holds 10 |
Z, DEC 0 | memory 13 receives the sum |
The difference is underneath. In MARIE.js, Load is a line in the instruction set table. In digiwleea, LOAD is the opcode 1 in the top four bits of a byte, which your instruction register holds and your control unit decodes into the signals that move the operand from RAM to the accumulator. The CPU lesson traces this exact kind of program step by step, and the branching and loops lesson adds the jumps.
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 MARIE in computer architecture?
MARIE (a Machine Architecture that is Really Intuitive and Easy) is a simple accumulator-based teaching computer from Null and Lobur's textbook The Essentials of Computer Organization and Architecture, with 16-bit words and 12-bit addresses.
Is there an online MARIE simulator?
Yes. MARIE.js runs in the browser at marie.js.org. It is free and open source under the MIT license, and it assembles and runs MARIE programs with step and micro-step modes.
What does Load X do in MARIE?
It copies the value at memory address X into the accumulator, AC. Its opcode is 1, so Load 005 assembles to 1005.
Can I build a CPU like MARIE myself?
Yes. digiwleea's free browser course has you build an accumulator CPU from transistors up: gates, adders, ALU, registers, RAM, a program counter and a control unit, and learn the small assembly language behind it; the finished CPU runs a stored LOAD, ADD, STORE, HALT program.