Trying to learn a hand by looking at x86 is not a good idea - it is CISC and rather ugly, the other is RISC and much cleaner. Just learn ARM by looking at the instruction set link in the architectural reference guide. See the mov instruction for the add command, etc.
ARM does not use intel syntax; it uses ARM syntax.
Do not study using the built-in assembly, write a real assembly. Use the instruction set simulator first, not the hardware.
ARM, Mips and others focus on a fixed word length. So, how would you, for example, fit in an instruction that says that you need to transfer it immediately to the register, specify the register and put the 32-bit instantaneous everything in 32 bits? impossible. Therefore, for instruction sets with a fixed length of length, you cannot just load any data you need into any register. You should read the rules for this set of commands. mips allows you to execute 16 bits, a hand for 8 plus or minus, depending on the taste of the set of hand instructions and instructions. mips, where you can put these 16 bits in both the upper and lower positions, the hand allows you to put these 8 bits anywhere in the 32-bit register depending on the taste of the set of hand commands (hands, thumbs, thumb extensions )
As with most assembler languages, you can solve this problem by doing something like this
ldr r0,my_value ... my_value: .word 0x12345678
With CISC, which immediately is simply tied to instructions, therefore, whether it is 0 bytes or 20 bytes, it still exists with any approach.
ARM assemblers also usually allow this shortcut to be used:
ldr r0,=something ... something:
which says it loads r0 with the ADDRESS, and not with the contents in this place, but the address (e.g. lea)
But it can be reduced immediately
ldr r0,=0x12345678
which, if supported by the assembler, will allocate a memory location to store the value and generate the ldr r0, [pc, offset] command to read it. If the immediate value is in the rules for mov, then the assembler can optimize it in mov rd, # immediate.