DERIVE
A tool (resource) to reverse-engineering instruction encodings.Writing encodings for an entire instruction set by hand is both tedious and error-prone. Starting from a minimal description of an assembly syntax (it is not necessary to specify valid opcode/registers matching, it is able to infer this from assembler errors) DERIVE feeds an assembler with permutations of instructions, analyzing the resulting machine code and solving equations on such output to determine how the instructions are encoded.
This page is linked from: New Jersey Machine Code Toolkit