ARM has at least 4 instruction sets:
- The classic 32-bit ISA (32-bit instructions operating on 32 bit data)
- Thumb compressed 16-bit instructions (operating on 32 bit data)
- Thumb-2 compressed 16-bit instructions (not strictly a separate ISA but a way to mix #1 and #2 in a single instruction stream)
- AArch64 32-bit wide instructions operating on 64-bit data (completely different from all the above)
There are then classic ARM 32-bit mnemonics, Thumb mnemonics and UAL 'unified assembly language' intend to cover both with one syntax.
Plus armasm and gas have different ways of writing assembly code.
Choose your poison...
Theo