第55部分- Linux x86 64位汇编内联汇编引用占位符
有时候使用相同的变量作为输入值和输出值是有好处的。必须在扩展asm段中区别定义输入值和输出值。
如果内联汇编代码中的输入值和输出值共享程序中相同的C变量,可以指定占位符作为约束值。可以减少代码中需要的寄存器。
#include <stdio.h>
int main()
{
int data1 = 10;
int data2 = 20;
asm ("imull %1, %0"
: "=r"(data2)
: "r"(data1), "0"(data2));
printf("The result is %d\n", data2);
return 0;
}
gcc -o regtest regtest3.c
得到的效果是一样的。