Browse Source

More docs

master
Taylor Bockman 7 years ago
parent
commit
b23b197019
  1. 26
      README.md

26
README.md

@ -1,6 +1,6 @@
# uVM - Micro Virtual Machine # uVM - Micro Virtual Machine
uVM is simply an experiment ins developing a working virtual machine with it's own bytecode. uVM is simply an experiment in developing a working virtual machine with it's own bytecode.
## Requirements ## Requirements
@ -13,6 +13,21 @@ uVM is simply an experiment ins developing a working virtual machine with it's o
2. `cmake .` 2. `cmake .`
3. `make` 3. `make`
## Usage
`uvm [-v] [-h] -f <your_file_of_bytecode>.uc`
* `-v`: Enable verbose logging mode
* `-h`: Show usage
* `-f <file_name>.uc`: Load the uvm bytecode file for processing
## Testing
CMake tests are used to confirm a handful of sample programs will run successfully in the VM
1. `cmake .`
2. `make test`
## Architecture ## Architecture
uVM is a _stack machine_. That is, it gets all of it's arguments from the stack, and returns the result uVM is a _stack machine_. That is, it gets all of it's arguments from the stack, and returns the result
@ -41,3 +56,12 @@ uVM possesses the standard issue instruction set you might expect in a simple VM
As I learn more about VM development this instruction set will likely become much more robust. As I learn more about VM development this instruction set will likely become much more robust.
## TODO
- [] Tests for good paths for all instructions
- [] Tests for uncompilable code
- [] Logging out current stack position, etc when verbose mode is enabled
- [] If verbose mode isn't enabled it shows the ascii loading while processing
- [] Come up with a way to allow the user to echo to the screen
- [] It would be cool to eventually write a high level language compiler that compiles down to the uvm

Loading…
Cancel
Save