Linux内核里面和一些开源的代码里,我们经常看到一些内联汇编(inline assemble)函数。里面经常有一些汇编代码
下面的函数不是内联汇编,是一个C语言调用AT&T汇编 (还有一种Intel汇编)
int replace(){  
  
int a=1;  
  
int b=2;  
  
asm("movl %1,%%eax"  
    "movl %%eax,%0" 
: "=r" (b) /* output Regester */
: "r" (a) /* input Regester */
: "%eax"); /* eax Regester */  
  
printf(" b  is %d \n",b)  
  
} 
调用replace输出结果:
b  is 1
