strawberryvm 0.2.0

A fantasy virtual machine with limits on resources.
Documentation
  • Coverage
  • 20.59%
    7 out of 34 items documented1 out of 1 items with examples
  • Size
  • Source code size: 31.3 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.53 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 15s Average build duration of successful builds.
  • all releases: 15s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • BenMcAvoy/StrawberryVM
    4 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • BenMcAvoy

StrawberryVM

A fantasy virtual machine with limits on resources.

TODO

  • Basic instructions
  • Addition implementation
  • Loading from a file
  • Text to binary
  • Assembler
  • Refactoring
  • Turing completion

Instructions

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.

Reserved symbols

Symbol Use
$ Hexadecimal value
% Binary value
^ Label value

Credits

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.