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...