天天看點

第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

得到的效果是一樣的。

繼續閱讀