#assembly #virtual #computer #emulation

bin+lib strawberryvm

A fantasy virtual machine with limits on resources

1 unstable release

0.2.0 Jan 20, 2024

#224 in Emulators

MIT license

30KB
606 lines

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.

Dependencies

~245–700KB
~17K SLoC