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.
- 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.
-
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: