kscarlett / pico-vm

Yet another toy VM...

Home Page:https://pico-vm.kscarlett.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

About

Yet another toy VM...

https://pico-vm.kscarlett.com

License:MIT License


Languages

Language:C 97.0%Language:Makefile 2.7%Language:Parrot 0.3%