A register name can optionally be prefixed by a ‘%’ character. So register
%r0 is equivalent to
r0 in the assembly code.
The presence of a ‘#’ character within a line (but not at the start of a line) indicates the start of a comment that extends to the end of the current line.
Prefixing an operand with an ‘@’ specifies that the operand is a symbol and not a register. This is how the assembler disambiguates the use of an ARC register name as a symbol. So the instruction
mov r0, @r0
moves the address of symbol
r0 into register
The ‘`’ (backtick) character is used to separate statements on a single line.
Used as a separator to obtain a sequence of commands from a C preprocessor macro.