Why use LDR over MOV (or vice versa) in ARM assembly?

It is a trick/shortcut. say for example ldr r0,=main what would happen is the assembler would allocate a data word, near the instruction but outside the instruction path ldr r0,main_addr … b somewhere main_addr: .data main Now expand that trick to constants/immediates, esp those that cannot fit into a move immediate instruction: top: add r1,r2,r3 … Read more