I have been hacking Assembler level on many different architectures. Cortex M0 is the first one where I actively try to avoid it. It's just no fun.
I have been hacking Assembler level on many different architectures. Cortex M0 is the first one where I actively try to avoid it. It's just no fun.
There isn't a single ARM instruction set, as it is with x86, for exmple. There are many different versions of it. Sometimes there are even significant variations within a family. e.g. Cortex M0 lacks many useful instructions that are only available in the M3/M4.
The main difference is that x86 doesn't have low power processors like the Cortex M series so they didn't have to remove any instructions to lower die size (thus price and power consumption).
If you keep switching between different Cortex-M cores and have difficulty keeping track of the available instructions, this wikipedia page[0] summarizes things in a nice short table.
[0] https://en.wikipedia.org/wiki/ARM_Cortex-M#Instruction_sets