Assembly help with beaglebone. Undefined symbol.

I have a pretty simple program below

`
void foo()
{
int r5 = 0;
int a = 0;
asm
(
“mov r5, $4\n\t”
“add r5, a”
);
}

void main (void)
{
foo();
}
`

When I compile it, I get:

/tmp/ccM76e6z.s: Assembler messages: /tmp/ccM76e6z.s:36: Error: undefined symbol a used as an immediate value

My gcc version:

gcc (Debian 4.6.3-14) 4.6.3