Using and Porting GNU CC
GNU C allows you to put a few global variables into specified hardware registers. You can also specify the register in which an ordinary register variable should be allocated.
These local variables are sometimes convenient for use with the extended
asm feature (see Extended Asm), if you want to write one
output of the assembler instruction directly into a particular register.
(This will work provided the register you specify fits the constraints
specified for that operand in the