第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
得到的效果是一樣的。