Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 1.06 KB

README.md

File metadata and controls

9 lines (5 loc) · 1.06 KB

virtual-stack

This project emulates a simple virtual machine by storing and referencing variables (in stack frame contexts) and then reading in a set of pseudo-assembly instructions which dictate what operations should be performed on the stack.

We emulate an 8-bit architecture. That is, our RAM contains 28 addresses of 1 byte each and the register bank contains 8 registers of 1 byte each. No information about the program's execution state is stored outside of the RAM and register bank.

The virtual machine operates on a pseudo-assembly language called x2017. The virtual machine runs on binaries in this language. There are two executables: objdump_x2017 takes a x2017 binary and produces it in human readable assembly format, and vm_x2017 takes a x2017 binary and performs its operations. The work done by objdump_x2017 in producing the binary in a human readable form is used in vm_x2017.

Information on x2017, the operations it supports and the implementation of the stack within the RAM can be found in the code comments.