- 294 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:45:36 ]
- >>283
こんな小さな例でもこれだけ違うんだけど^^ アセンブラの方はもっと簡単にはなるけど、CやC#以上に簡単になるのかい? // int array[] = {...}; // int array_size = sizeof(array) / sizeof(array[0]); // C# int count = 0; foreach (int x in array) count += x; Console.WriteLine(count); // C int i, count = 0; for (i = 0; i < array_size; ++i) count += array[i]; printf("%d\n", count); // x86アセンブラ xor edx, edx ; count xor ecx, ecx ; i lea ebx, array ; array loop1: lea eax, [ebx + ecx * 4] add edx, [eax] inc ecx cmp ecx, array_size jb loop1 push edx push offset string "%d\n" call dword ptr [printf] add esp, 8
|

|