Apoo is an environment for programming in a simple assembly language.
It is implemented in Python and has the following components:
* the Apoo virtual machine is a virtual processor with a very simple architecture and instruction set that mimics almost all the essential features of a modern microprocessor. As the aim is to teach assembly language, there is no machine code associated with the instruction set.
* the Apoo Interface is a graphical environment that monitors the state of the machine during the execution of a program and allows the writing/editing/execution of programs in assembly language.
* the Apoo Tutor is a module that aims the grading of student programs based on a description of what should be the execution of the program for specified input data sets.