Electrical – Assembly language: Ampersand before a register

assemblybeaglebone black

I'm trying to program the Programmable Realtime Units (PRU) on my Beaglebone Black in assembly language. Here is the instruction set, which comes in two flavors: pasm and clpru (I'm using pasm).

What does it mean when a register name has an ampersand (&) before it? For example:

// Copy 8 bytes from r2/r3 to the memory address r1+5
sbbo &r2, r1, 5, 8

How is this different than just

sbbo r2, r1, 5, 8

?

Best Answer

From the instruction set provided in the link it is evident that

sbbo &r2, r1, 5, 8

is the only supported in clpru assembler. But in pasm

sbbo r2, r1, 5, 8

is also supported. So, in pasm they are same. But if clpru was used only the first syntax would work.