Linux C语言调用汇编

2014-11-24 09:07:26 · 作者: · 浏览: 1

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