Skip to content
Yet another toy VM...
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src
tests
.gitignore
LICENSE.md
Makefile
README.md
pico-vm.code-workspace

README.md

Pico VM

MIT Licence

What's this?

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

Building

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.

Dependencies

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

License

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

Acknowledgments

Pico VM is based on or inspired by:

You can’t perform that action at this time.