天天看点

第55部分- Linux x86 64位汇编内联汇编引用占位符第55部分- Linux x86 64位汇编内联汇编引用占位符

第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

得到的效果是一样的。

继续阅读