I want to start writing and testing ARM Assembly programs. What emulator should I use? Does DS-5 or Keil MDK-ARM suffice?
If you are planning to write an ARM emulator in C, you can use the code in this repository as a starting point; https://github.com/omufeed/ARMAssemblyEmulatorWithC
It has a pipeline of size 4. Data processing instructions are implemented and it handles the overflow and carry flags. Branch and interrupts are also implemented.
It accepts an assembly instruction as input and simulates the final memory state after the instruction completion.
There are some example inputs added as code comments.
Read more at http://www.omidmufeed.com/arm-assembler-emulator-with-c/