本文简介介绍一个在gcc中写asm的例子..

[c] #include <stdio.h>

int main() { int a=10,b=0; printf("0) a: %d b: %d\n",a,b); // b = a asm ( "movl %1, %%eax;
movl %%eax, %0;" : "=r"(b) // output : "r"(a) // input :"%eax" // clobbered register );

printf(&quot;1) a: %d b: %d\n&quot;,a,b);

// b = a * 5
asm( &quot;leal (%1,%1,4), %0&quot;
      : &quot;=r&quot; (b)
      : &quot;r&quot; (a)
      );

printf(&quot;2) a: %d b: %d\n&quot;,a,b);
return 0;

} [/c]

Output

$ ./a.out
0) a: 10 b: 0
1) a: 10 b: 10
2) a: 10 b: 50

References

[1] http://argcv.com/archives/84 GCC汇编器语法