Как в gcc inline assembler использовать локальную С переменную? Пример: int main (void) { int i=1; asm("movl i, %eax"); ... } Компилятор выдает "Undefined reference to 'i'". Если i глобальная, то все работает.
Но если тебе просто нужно, чтобы i было в eax, то лучше написать "a" (i). Если надо, чтобы i было в регистре (eax, ebx, ecx, edx, esi, edi), то можно писать "r" (i), ну и так далее, см. ссылку.