A method for simulating a first processor (e.g., target processor) on a
second processor (e.g., host processor) includes translating assembly
language instructions associated with the first processor into `C`
language code. The `C` language code is then compiled by a compiler
program running on the second processor. The compiled code is then
executed by the second processor to simulate the first processor. For
example, the code may be checked to determine whether it is functionally
correct and/or run-time statistics may be collected regarding the program
associated with the first processor.