3 ms·
There are so many different variants of ARM assembler, it is difficult to keep track of them all. Somehow ARM managed to get away with it. I have been hacking
by kken 12y ago
There are so many different variants of ARM assembler, it is difficult to keep track of them all. Somehow ARM managed to get away with it.
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.
- lgeek 12y agoWhat do you mean by 'versions of ARM assembler'?
- kken 12y ago"instruction set" would be more precise. 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.
- Narishma 12y agoIt's the same on x86. Not all x86 processors have all the x86 instructions. There have been many extensions over the years. 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).
- lgeek 12y agoNarishma's sibling comment is spot on: the microcontroller profile cores have a subset of the instructions available on application profile cores. Cortex-M0(+) and Cortex-M1 have a base set of instructions, while M3, M4 and M4F each add a new subset to that of the immediately inferior model. This is done to change the trade-off between speed, energy and cost. 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 https://en.wikipedia.org/wiki/ARM_Cortex-M#Instruction_sets