[問題] linux inline assembly
想問一下在linux下c程式中加入一段assembly code的方法,
complier為gcc
在網路上看了一些資料後仍不懂(感覺上很麻煩且沒有詳細的範例
,組語規格為AT&T)
寫了一下程式測試大概為
int main(){
int i,k;
i=1;
asm( "movl %1, %%eax;"
"addl %%eax,%0;"
:"=r"(k)
:"r"(i)
:"%eax");
printf("%d\n",k);
return 0;
}
預計output結果為1,但郤為2.
記得第一堂上課時老師作了一個程式速度測試例子,
是相同程式分別用組語(inline assembly)與c實作,然後比較效能
所以想問老師可否提供作參考之用,謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.245.60
推
12/12 09:09, , 1F
12/12 09:09, 1F
推
12/12 09:10, , 2F
12/12 09:10, 2F
推
12/12 09:14, , 3F
12/12 09:14, 3F
推
12/12 09:15, , 4F
12/12 09:15, 4F