in x86 inline assembly i can write something like this:
asm (\"cpuid\" : \"=a\" (_eax), \"=b\" (_ebx), \"=c\" (_ecx),
I don't think gcc for ARM allows you to use constraints to specify exactly which register to use. However, you can use explicit register variables to specify a register to store a variable in:
register int my_variable asm("r0");