The Cortex™-M3 Devices Generic User Guide explains the instruction LDRD R8, R9, [R3, #0x20]
as "Load R8 from a word 8 bytes above the address in R3, and load R9 from a word 9 bytes above the address in R3". I would like to ask why 0x20 equals to 8 bytes and not 32 bytes?
The guide explains the instruction LDRNE R2, [R5, #960]!
as "Loads (conditionally) R2 from a word 960 bytes above the address in R5, and increments R5 by 960". Is the value or the address of R2 updated? Is the value or address of R5 incremented?
The guide explains the instruction STRH R3, [R4], #4
as "Store R3 as halfword data into address in R4, then increment R4 by 4". Is the value or address of R4 incremented?
STRH R3,[R4]
is equivalent toMOV R4, R3
.STRH R3, [R4]
stores the value of register R3 into the address specified by R4, which is the same as copying the value of R3 into R4. Is that correct? \$\endgroup\$