Learn how to write an emulator
>> Want to really learn how a CPU works? Writing an emulator is the best way to learn about it.<p>The best way to learn how a CPU works would be to write a CPU!  I.e., write HDL code for it and test in a hardware simulator.<p>I have designed a miniature application-specific processor, a compiler* and IDE for it, a disassembler, and an emulator too.<p>* To be more precise, I hacked a compiler for it using C# .net compiler.