Universal Virtual Machine

Program created to emulate a computer using eight registers, segmented memory, 32-bit program counter, and I/O capabilities. Emulator takes in a program written in UMASM (the assembly language specific to the Universal Machine) and executes it. This project was an exploration of both machine code and assembly language as well as program design and performance optimization.

Later used profiling tools such as kcachegrind to drastically improve program performance.

Project specs here.

Performance optimization specs here.