A fantasy virtual machine with limits on resources.
« Explore the docs »
Releases
·
Report Bugs
·
Request Features
- Basic instructions
- Addition implementation
- Loading from a file
- Text to binary
- Assembler
- Refactoring
- Turing completion
A new release may not be made for a moment as I am currently developing a programming language for the VM. The VM project is not dropped, I am just making somthing for it that is outside of this repo! Once it is functional it may either be a submodule or simply added into this repo.
Name | Arguments | Description |
---|---|---|
No Operation | None | Does nothing. |
Push | u8 (8-bit value to push) | Pushes an 8-bit value onto the stack. |
Pop Register | Register (destination register) | Pops a value from the stack into the specified register. |
Push Register | Register (source register) | Pushes the value of the specified register onto the stack. |
Add Stack | None | Adds the top two values on the stack. |
Add Register | Two Registers (operands) | Adds the values of two registers and stores the result in the destination register. |
Signal | u8 (signal value) | Sends a signal with an 8-bit value. |
Jump | u8 (target address) | Jumps to the specified address in the program. |
ShiftLeft | Register (target register)and u8 (shift amount) | Left shifts a specific register by a certain amount. |
Symbol | Use |
---|---|
$ | Hexadecimal value |
% | Binary value |
^ | Label value |
This project is following along with the live streams by TomMarksTalksCode and this project would not have been possible without him. He can also be found on GitHub and on his website.