Write a tiny program and watch a real processor run it — registers filling, memory and a stack in motion, a pixel screen lighting up, all clocked one instruction at a time. Values wrap at 255 like true 8-bit hardware.
clock
Write your program
about to run: —clock: idlesteps: 0
Registers & flags
zero flag: offcarry flag: off
Screen · 16×16
Memory · 16 cells
Stack
Execution
Output
nothing printed yet
Instruction set — everything you can write
— move & math (all values wrap 0–255) —MOV a, x put x into a · ADD/SUB/MUL a, x · INC a · DEC a— compare & jump (decisions) —CMP a, x compare (sets flags) · JMP label always JZ/JE if equal · JNZ/JNE if not equal · JG if greater · JL if less · JC/JNC if carry / not
— memory —STORE addr, x write cell · LOAD a, addr read cell (cells 0–15)
— stack & sub-programs (functions) —PUSH x · POP a · CALL label run a sub-program · RET return from it
— screen & output —PIX x, y, c set a pixel (x,y 0–15, colour c 0–15) · CLS clear screen · OUT x print · HLT stop
— notes —
Registers are A B C D. Label = name + colon (loop:). Comment starts with ;