本文简介介绍一个在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("1) a: %d b: %d\n",a,b);
// b = a * 5
asm( "leal (%1,%1,4), %0"
: "=r" (b)
: "r" (a)
);
printf("2) a: %d b: %d\n",a,b);
return 0;
} [/c]
Output
$ ./a.out
0) a: 10 b: 0
1) a: 10 b: 10
2) a: 10 b: 50
Comments
No comments yet — be the first to write one.