Skip to content
Yet another toy VM...
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Pico VM

MIT Licence

What's this?

Pico VM is a small VM I'm writing to learn some more about interpreters and VMs.


You need clang and GNU Make to build Pico VM. If you have clang and GNU Make, you can simply use git clone to clone it, and use the make command to build it.


Pico VM currently does not have any dependencies, but I'm currently evaluating multiple testing suites, so there might be a dependency for testing soon.

Future Plans

  • Debug mode with value prints of registers and stack.
  • Basic parsing.
  • Basic evaluation.
  • Error handling.
  • Non-debug print.
  • Specialised registers.
  • Conditional and unconditional JMP instructions.
  • Unit tests.
  • Documentation on how to use Pico VM.

Instruction set implementation status

  • HLT
  • NOP
  • PUSH <val>
  • POP
  • ADD
  • SUB
  • MUL
  • DIV
  • MOV <val> <reg>
  • SMOV <reg>
  • JMP <dest>
  • JE <val a> <val b> <dest>
  • JNE <val a> <val b> <dest>
  • JLE <val a> <val b> <dest>
  • JL <val a> <val b> <dest>
  • JGE <val a> <val b> <dest>
  • JG <val a> <val b> <dest>
  • JNZ <val> <dest>
  • JZ <val> <dest>
  • INT


Pico VM is licensed under the MIT license - see the attached license for details.


Pico VM is based on or inspired by:

You can’t perform that action at this time.