C言語なら俺に聞け(入門編)Part 95
■ このスレッドは過去ログ倉庫に格納されています
0335デフォルトの名無しさん
2012/01/18(水) 10:52:06.29だれか助けて
関数に引数1つをつけて呼んでリターンした場合
movl $0xa,(%esp) ; 0.5クロック
call 0x4013e1 <func1(int)> ; 5クロック
mov $0x0,%eax ; 0.5クロック
leave ; leaveは実質mov pop movなので、2.5クロック
ret ; 8クロック
なので、最低 16.5クロック+関数内での演算クロック数が必要
ビットシフトは、
sarl $0x2,0x1c(%esp) ; 4クロック
4クロック+演算クロック数
if文
cmpl $0x0,0x18(%esp) ; 0.5クロック
jne 0x4013ee <main()+46> ; 不明:0.5クロック程度?
1クロック+演算クロック数が必要
あれ?
If 文って結構早くね?
てか、ビットシフト遅くね?
If文って分岐予測が当たればさらに高速化するし。
■ このスレッドは過去ログ倉庫に格納されています