[問題] linux inline assembly

作者: braveforever (braveforever)   2006-12-11 20:30:40
想問一下在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實作,然後比較效能
所以想問老師可否提供作參考之用,謝謝^^
作者: pj2 (pj2)   2006-12-12 09:09:00
http://www.csie.ntu.edu.tw/~pjcheng/course/asm2006/asm_prog/mult.cA simple tutorial about inline assembly for x86 in linux:http://www-128.ibm.com/developerworks/library/l-ia.html

Links booklink

Contact Us: admin [ a t ] ucptt.com