What do the abbriviations (Rn, Rd, . ) in the instruction set of ARM mean?

What do those abbriviations mean exactly? I guess they mean different kinds of addresses, like directely addressed, relatively addressed or so. But what exactly? Thanks!

354k 49 49 gold badges 685 685 silver badges 934 934 bronze badges asked Jan 15, 2016 at 19:31 181 1 1 silver badge 10 10 bronze badges

the key is to connect the dots, you see the ascii/asm representation of the instruction then you see the machine code binary definition so you can see which bits go where. they could have just as easily said ra, rb, rc. as already answered d likely means destination. n and m?

Commented Jan 15, 2016 at 20:14

3 Answers 3

Operands of the form refer to general-purpose registers, i.e. r0-r15 (or accepted aliases like sp , pc , etc.).

I'm not sure if it's ever called out specifically anywhere but there is a general pattern of "d" meaning destination, "t" meaning target, "n" meaning the first operand or base register, "m" meaning the second operand, and occasionally "a" meaning an accumulator. Hence why you might spot designations like (in the destructive two-operand instructions), or , (where a 64-bit value is held across a pair of GP registers). This is consistent across the other types of register too, e.g. VADD.F32 , , .

answered Jan 15, 2016 at 19:46 Notlikethat Notlikethat 20.8k 3 3 gold badges 43 43 silver badges 79 79 bronze badges

They are just there to define registers, the lowercase letter just being there to separate them for explanation. Rd is destination, but Rn, Rm etc are just any register you can use. It's the only way to tell which is which when explaining like "Rd equals Rn bitwise anded with Rm", for example, since you can't use numbers.

They could be Rx, Ry etc, or Ra, Rb. as well.