risc386 (hackage): risc386 is a symbolic Intel(R) 386 assembler interpreter which allows infinitely many registers (temporaries).  Its purpose is to debug the output of a MiniJava compiler (from Andrew Appel's book, Modern Compiler Implementation in JAVA) before register allocation has been performed.  risc386 supports only a small fragment of i386 instructions. It expects its input to be a list of procedures in .intel_syntax each of which is started by a label and terminated by a return statement.  Control flow is restricted, so, only jumps to procedure-local labels are allowed.  Reading from an uninitialized memory location will lead to an exception.
Keywords: bsd3|compilers-interpreters|education|program