A dumb virtual machine

DumbVM in action, running a 21-line programme
Last year, my course had a module called “Computer Hardware and Operating System”. For someone like me who loves understanding how things work, it was a blast: we went from the concept of basic logic gates to building a simplistic working processor. The fact that our lecturer was passionate about his subject probably helped a lot as well.
Since I have been slacking off my game-a-month project, I though it could be interesting to try and implement what I learnt in that class to build a very simple virtual machine in C that could read, assemble and run very simple programmes.