Linux C语言调用汇编

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/bf0cb014ebe9b5058fd6cba62b0752dc.html