main.c
#include <stdio.h>
int a;
int main()
{
asm(
"pusha #this is a note\n"
"movl $1,a\n" //a is a memory address
"movl a,%eax\n"
"addl $2,%eax\n"
"movl %eax,a\n"
"popa"
);
printf("a=%d\n",a);
return 0;
}
编译:gcc main.c -o main
运行结果为a=3
注意:C语言中的全局变量名,在内嵌汇编代码中被引用时表示的是这个变量的内存地址