Systems Programming • 2025
Description
A minimal virtual machine written in C that executes a Tiny Accumulator Machine (TAM)
instruction set. Each instruction is two words—an opcode and an operand.
The VM maintains a program counter (PC), accumulator (ACC), and
memory. It supports arithmetic and control-flow (e.g., LOAD, STORE,
ADD, SUB, JMP, JZ) and halts on HALT.
Programs are loaded from a simple text/binary format and executed step-by-step with clear
state updates.
Demo
This demo shows the elf.txt input program and a captured run of the VM in console (with user inputs).
Example Input (elf.txt)
Loading elf.txt…
Example Output
Loading run log…
How to Run (Repo)
- Clone the repo and follow the README instructions.
- Build the VM with
gccand run a sample program.
Skills Used & Learned
- C programming (pointers, structs, file I/O)
- Virtual machine & ISA design (two-word instructions)
- Execution state: PC, ACC, memory, halt conditions
- Control flow & branching (JMP/JZ), arithmetic ops
- Input parsing (program loader) and error handling
- CLI UX & documentation (README, examples)
- Version control & hosting (Git, GitHub Pages iframe demo)