Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- only Visual Studio 2012:
- CODE 1: Debug mode -> until input with cin :
- --------------------------------------------
- int until;
- clock_t start,stop;
- cout << "Until: "; cin >> until;
- 011550B2 push 115DC70h
- 011550B7 mov eax,dword ptr ds:[01161390h]
- 011550BC push eax
- 011550BD call std::operator<<<std::char_traits<char> > (011512B7h)
- 011550C2 add esp,8
- 011550C5 mov esi,esp
- 011550C7 lea eax,[until]
- 011550CA push eax
- 011550CB mov ecx,dword ptr ds:[116132Ch]
- 011550D1 call dword ptr ds:[1161330h]
- 011550D7 cmp esi,esp
- 011550D9 call __RTC_CheckEsp (01151334h)
- start = clock();
- 011550DE mov esi,esp
- 011550E0 call dword ptr ds:[1161460h]
- 011550E6 cmp esi,esp
- 011550E8 call __RTC_CheckEsp (01151334h)
- 011550ED mov dword ptr [start],eax
- for(i=0 ; i<until; i++)
- 011550F0 mov dword ptr [i],0
- 011550F7 jmp main+212h (01155102h)
- 011550F9 mov eax,dword ptr [i]
- 011550FC add eax,1
- 011550FF mov dword ptr [i],eax
- 01155102 mov eax,dword ptr [i]
- 01155105 cmp eax,dword ptr [until]
- 01155108 jge main+279h (01155169h)
- {
- ExampleArray1[1]++;
- 0115510A mov eax,4
- 0115510F shl eax,0
- 01155112 mov ecx,dword ptr [ExampleArray1]
- 01155115 mov edx,dword ptr [ecx+eax]
- 01155118 add edx,1
- 0115511B mov eax,4
- 01155120 shl eax,0
- 01155123 mov ecx,dword ptr [ExampleArray1]
- 01155126 mov dword ptr [ecx+eax],edx
- ExampleArray2[1]++;
- 01155129 mov eax,4
- 0115512E shl eax,0
- 01155131 mov ecx,dword ptr [ExampleArray2]
- 01155134 mov edx,dword ptr [ecx+eax]
- 01155137 add edx,1
- 0115513A mov eax,4
- 0115513F shl eax,0
- 01155142 mov ecx,dword ptr [ExampleArray2]
- 01155145 mov dword ptr [ecx+eax],edx
- ExampleArray3[1]++;
- 01155148 mov eax,4
- 0115514D shl eax,0
- 01155150 mov ecx,dword ptr [ExampleArray3]
- 01155153 mov edx,dword ptr [ecx+eax]
- 01155156 add edx,1
- 01155159 mov eax,4
- 0115515E shl eax,0
- 01155161 mov ecx,dword ptr [ExampleArray3]
- 01155164 mov dword ptr [ecx+eax],edx
- }
- 01155167 jmp main+209h (011550F9h)
- stop = clock();
- 01155169 mov esi,esp
- 0115516B call dword ptr ds:[1161460h]
- 01155171 cmp esi,esp
- 01155173 call __RTC_CheckEsp (01151334h)
- 01155178 mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 0115517B push 115DC7Ch
- 01155180 mov eax,dword ptr [stop]
- 01155183 sub eax,dword ptr [start]
- 01155186 cvtsi2ss xmm0,eax
- 0115518A divss xmm0,dword ptr ds:[115DDA0h]
- 01155192 mov esi,esp
- 01155194 push ecx
- 01155195 movss dword ptr [esp],xmm0
- 0115519A push 115DC84h
- 0115519F mov ecx,dword ptr ds:[1161390h]
- 011551A5 push ecx
- 011551A6 call std::operator<<<std::char_traits<char> > (011512B7h)
- 011551AB add esp,8
- 011551AE mov ecx,eax
- 011551B0 call dword ptr ds:[1161338h]
- 011551B6 cmp esi,esp
- 011551B8 call __RTC_CheckEsp (01151334h)
- 011551BD push eax
- 011551BE call std::operator<<<std::char_traits<char> > (011512B7h)
- 011551C3 add esp,8
- start = clock();
- 011551C6 mov esi,esp
- 011551C8 call dword ptr ds:[1161460h]
- 011551CE cmp esi,esp
- 011551D0 call __RTC_CheckEsp (01151334h)
- 011551D5 mov dword ptr [start],eax
- for(i=0 ; i<until; i++)
- 011551D8 mov dword ptr [i],0
- 011551DF jmp main+2FAh (011551EAh)
- 011551E1 mov eax,dword ptr [i]
- for(i=0 ; i<until; i++)
- 011551E4 add eax,1
- 011551E7 mov dword ptr [i],eax
- 011551EA mov eax,dword ptr [i]
- 011551ED cmp eax,dword ptr [until]
- 011551F0 jge main+361h (01155251h)
- {
- ExampleArray4[1]++;
- 011551F2 mov eax,4
- 011551F7 shl eax,0
- 011551FA mov ecx,dword ptr [ExampleArray4]
- 011551FD mov edx,dword ptr [ecx+eax]
- 01155200 add edx,1
- 01155203 mov eax,4
- 01155208 shl eax,0
- 0115520B mov ecx,dword ptr [ExampleArray4]
- 0115520E mov dword ptr [ecx+eax],edx
- ExampleArray5[1]++;
- 01155211 mov eax,4
- 01155216 shl eax,0
- 01155219 mov ecx,dword ptr [ExampleArray5]
- 0115521C mov edx,dword ptr [ecx+eax]
- 0115521F add edx,1
- 01155222 mov eax,4
- 01155227 shl eax,0
- 0115522A mov ecx,dword ptr [ExampleArray5]
- 0115522D mov dword ptr [ecx+eax],edx
- ExampleArray6[1]++;
- 01155230 mov eax,4
- 01155235 shl eax,0
- 01155238 mov ecx,dword ptr [ExampleArray6]
- 0115523B mov edx,dword ptr [ecx+eax]
- 0115523E add edx,1
- 01155241 mov eax,4
- 01155246 shl eax,0
- 01155249 mov ecx,dword ptr [ExampleArray6]
- 0115524C mov dword ptr [ecx+eax],edx
- }
- 0115524F jmp main+2F1h (011551E1h)
- stop = clock();
- 01155251 mov esi,esp
- 01155253 call dword ptr ds:[1161460h]
- 01155259 cmp esi,esp
- 0115525B call __RTC_CheckEsp (01151334h)
- 01155260 mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 01155263 push 115DC7Ch
- 01155268 mov eax,dword ptr [stop]
- 0115526B sub eax,dword ptr [start]
- 0115526E cvtsi2ss xmm0,eax
- 01155272 divss xmm0,dword ptr ds:[115DDA0h]
- 0115527A mov esi,esp
- 0115527C push ecx
- 0115527D movss dword ptr [esp],xmm0
- 01155282 push 115DC84h
- 01155287 mov ecx,dword ptr ds:[1161390h]
- 0115528D push ecx
- 0115528E call std::operator<<<std::char_traits<char> > (011512B7h)
- 01155293 add esp,8
- 01155296 mov ecx,eax
- 01155298 call dword ptr ds:[1161338h]
- 0115529E cmp esi,esp
- 011552A0 call __RTC_CheckEsp (01151334h)
- 011552A5 push eax
- 011552A6 call std::operator<<<std::char_traits<char> > (011512B7h)
- 011552AB add esp,8
- ---------------------------------------------------------------------------------------------------------------------------------------
- CODE 2: release mode (with optimization) -> until input with cin :
- ------------------------------------------------------------------
- int until;
- clock_t start,stop;
- cout << "Until: "; cin >> until;
- 002E131B mov ecx,dword ptr ds:[2E3054h]
- 002E1321 add esp,4
- 002E1324 mov edx,2E31BCh
- 002E1329 call std::operator<<<std::char_traits<char> > (02E1910h)
- 002E132E mov ecx,dword ptr ds:[2E3050h]
- 002E1334 lea eax,[esp+10h]
- 002E1338 push eax
- 002E1339 call dword ptr ds:[2E302Ch]
- start = clock();
- 002E133F call dword ptr ds:[2E30E0h]
- 002E1345 mov edi,dword ptr [esp+14h]
- for(i=0 ; i<until; i++)
- 002E1349 xor ecx,ecx
- 002E134B mov dword ptr [esp+24h],eax
- 002E134F cmp dword ptr [esp+10h],ecx
- 002E1353 jle main+0F5h (02E1365h)
- {
- ExampleArray1[1]++;
- 002E1355 inc dword ptr [esi+4]
- ExampleArray2[1]++;
- 002E1358 inc dword ptr [ebx+4]
- ExampleArray3[1]++;
- 002E135B inc dword ptr [edi+4]
- 002E135E inc ecx
- 002E135F cmp ecx,dword ptr [esp+10h]
- 002E1363 jl main+0E5h (02E1355h)
- }
- stop = clock();
- 002E1365 call dword ptr ds:[2E30E0h]
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 002E136B sub eax,dword ptr [esp+24h]
- 002E136F mov ecx,dword ptr ds:[2E3054h]
- 002E1375 movd xmm0,eax
- 002E1379 cvtdq2ps xmm0,xmm0
- 002E137C sub esp,8
- 002E137F divss xmm0,dword ptr ds:[2E327Ch]
- 002E1387 mov edx,2E31CCh
- 002E138C movss dword ptr [esp+4],xmm0
- 002E1392 call std::operator<<<std::char_traits<char> > (02E1910h)
- 002E1397 add esp,4
- 002E139A mov ecx,eax
- 002E139C call dword ptr ds:[2E3034h]
- 002E13A2 mov edx,2E31C4h
- 002E13A7 mov ecx,eax
- 002E13A9 call std::operator<<<std::char_traits<char> > (02E1910h)
- start = clock();
- 002E13AE call dword ptr ds:[2E30E0h]
- for(i=0 ; i<until; i++)
- 002E13B4 xor ecx,ecx
- 002E13B6 mov dword ptr [esp+24h],eax
- 002E13BA cmp dword ptr [esp+10h],ecx
- 002E13BE jle main+174h (02E13E4h)
- for(i=0 ; i<until; i++)
- 002E13C0 mov eax,dword ptr [esp+1Ch]
- 002E13C4 mov edx,dword ptr [esp+18h]
- 002E13C8 mov edi,dword ptr [esp+20h]
- 002E13CC lea esp,[esp]
- {
- ExampleArray4[1]++;
- 002E13D0 inc dword ptr [eax+4]
- ExampleArray5[1]++;
- 002E13D3 inc dword ptr [edx+4]
- ExampleArray6[1]++;
- 002E13D6 inc dword ptr [edi+4]
- 002E13D9 inc ecx
- 002E13DA cmp ecx,dword ptr [esp+10h]
- 002E13DE jl main+160h (02E13D0h)
- 002E13E0 mov edi,dword ptr [esp+14h]
- }
- stop = clock();
- 002E13E4 call dword ptr ds:[2E30E0h]
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 002E13EA sub eax,dword ptr [esp+24h]
- 002E13EE mov ecx,dword ptr ds:[2E3054h]
- 002E13F4 movd xmm0,eax
- 002E13F8 cvtdq2ps xmm0,xmm0
- 002E13FB sub esp,8
- 002E13FE divss xmm0,dword ptr ds:[2E327Ch]
- 002E1406 mov edx,2E31DCh
- 002E140B movss dword ptr [esp+4],xmm0
- 002E1411 call std::operator<<<std::char_traits<char> > (02E1910h)
- 002E1416 add esp,4
- 002E1419 mov ecx,eax
- 002E141B call dword ptr ds:[2E3034h]
- 002E1421 mov edx,2E31D4h
- 002E1426 mov ecx,eax
- 002E1428 call std::operator<<<std::char_traits<char> > (02E1910h)
- ---------------------------------------------------------------------------------------------------------------------------------------
- CODE 3: release mode (without optimization) -> until input with cin :
- ---------------------------------------------------------------------
- int until;
- clock_t start,stop;
- cout << "Until: "; cin >> until;
- 008D1776 push 8D41DCh
- 008D177B mov eax,dword ptr ds:[008D406Ch]
- 008D1780 push eax
- 008D1781 call std::operator<<<std::char_traits<char> > (08D23F0h)
- 008D1786 add esp,8
- 008D1789 lea ecx,[until]
- 008D178C push ecx
- 008D178D mov ecx,dword ptr ds:[8D4068h]
- 008D1793 call dword ptr ds:[8D4034h]
- start = clock();
- 008D1799 call dword ptr ds:[8D40FCh]
- 008D179F mov dword ptr [start],eax
- for(i=0 ; i<until; i++)
- 008D17A2 mov dword ptr [i],0
- 008D17A9 jmp main+1C4h (08D17B4h)
- 008D17AB mov edx,dword ptr [i]
- 008D17AE add edx,1
- 008D17B1 mov dword ptr [i],edx
- 008D17B4 mov eax,dword ptr [i]
- 008D17B7 cmp eax,dword ptr [until]
- 008D17BA jge main+22Bh (08D181Bh)
- {
- ExampleArray1[1]++;
- 008D17BC mov ecx,4
- 008D17C1 shl ecx,0
- 008D17C4 mov edx,dword ptr [ExampleArray1]
- 008D17C7 mov eax,dword ptr [edx+ecx]
- 008D17CA add eax,1
- 008D17CD mov ecx,4
- 008D17D2 shl ecx,0
- 008D17D5 mov edx,dword ptr [ExampleArray1]
- 008D17D8 mov dword ptr [edx+ecx],eax
- ExampleArray2[1]++;
- 008D17DB mov eax,4
- 008D17E0 shl eax,0
- 008D17E3 mov ecx,dword ptr [ExampleArray2]
- 008D17E6 mov edx,dword ptr [ecx+eax]
- 008D17E9 add edx,1
- 008D17EC mov eax,4
- 008D17F1 shl eax,0
- 008D17F4 mov ecx,dword ptr [ExampleArray2]
- 008D17F7 mov dword ptr [ecx+eax],edx
- ExampleArray3[1]++;
- 008D17FA mov edx,4
- 008D17FF shl edx,0
- 008D1802 mov eax,dword ptr [ExampleArray3]
- 008D1805 mov ecx,dword ptr [eax+edx]
- 008D1808 add ecx,1
- 008D180B mov edx,4
- 008D1810 shl edx,0
- 008D1813 mov eax,dword ptr [ExampleArray3]
- 008D1816 mov dword ptr [eax+edx],ecx
- }
- 008D1819 jmp main+1BBh (08D17ABh)
- stop = clock();
- 008D181B call dword ptr ds:[8D40FCh]
- 008D1821 mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 008D1824 push 8D41E4h
- 008D1829 mov ecx,dword ptr [stop]
- 008D182C sub ecx,dword ptr [start]
- 008D182F cvtsi2ss xmm0,ecx
- 008D1833 divss xmm0,dword ptr ds:[8D429Ch]
- 008D183B push ecx
- 008D183C movss dword ptr [esp],xmm0
- 008D1841 push 8D41ECh
- 008D1846 mov edx,dword ptr ds:[8D406Ch]
- 008D184C push edx
- 008D184D call std::operator<<<std::char_traits<char> > (08D23F0h)
- 008D1852 add esp,8
- 008D1855 mov ecx,eax
- 008D1857 call dword ptr ds:[8D4074h]
- 008D185D push eax
- 008D185E call std::operator<<<std::char_traits<char> > (08D23F0h)
- 008D1863 add esp,8
- start = clock();
- 008D1866 call dword ptr ds:[8D40FCh]
- 008D186C mov dword ptr [start],eax
- for(i=0 ; i<until; i++)
- 008D186F mov dword ptr [i],0
- 008D1876 jmp main+291h (08D1881h)
- 008D1878 mov eax,dword ptr [i]
- 008D187B add eax,1
- 008D187E mov dword ptr [i],eax
- 008D1881 mov ecx,dword ptr [i]
- 008D1884 cmp ecx,dword ptr [until]
- 008D1887 jge main+2F8h (08D18E8h)
- {
- ExampleArray4[1]++;
- 008D1889 mov edx,4
- 008D188E shl edx,0
- 008D1891 mov eax,dword ptr [ExampleArray4]
- 008D1894 mov ecx,dword ptr [eax+edx]
- 008D1897 add ecx,1
- 008D189A mov edx,4
- 008D189F shl edx,0
- 008D18A2 mov eax,dword ptr [ExampleArray4]
- {
- ExampleArray4[1]++;
- 008D18A5 mov dword ptr [eax+edx],ecx
- ExampleArray5[1]++;
- 008D18A8 mov ecx,4
- 008D18AD shl ecx,0
- 008D18B0 mov edx,dword ptr [ExampleArray5]
- 008D18B3 mov eax,dword ptr [edx+ecx]
- 008D18B6 add eax,1
- 008D18B9 mov ecx,4
- 008D18BE shl ecx,0
- 008D18C1 mov edx,dword ptr [ExampleArray5]
- 008D18C4 mov dword ptr [edx+ecx],eax
- ExampleArray6[1]++;
- 008D18C7 mov eax,4
- 008D18CC shl eax,0
- 008D18CF mov ecx,dword ptr [ExampleArray6]
- 008D18D2 mov edx,dword ptr [ecx+eax]
- 008D18D5 add edx,1
- 008D18D8 mov eax,4
- 008D18DD shl eax,0
- 008D18E0 mov ecx,dword ptr [ExampleArray6]
- 008D18E3 mov dword ptr [ecx+eax],edx
- }
- 008D18E6 jmp main+288h (08D1878h)
- stop = clock();
- 008D18E8 call dword ptr ds:[8D40FCh]
- 008D18EE mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 008D18F1 push 8D41F4h
- 008D18F6 mov edx,dword ptr [stop]
- 008D18F9 sub edx,dword ptr [start]
- 008D18FC cvtsi2ss xmm0,edx
- 008D1900 divss xmm0,dword ptr ds:[8D429Ch]
- 008D1908 push ecx
- 008D1909 movss dword ptr [esp],xmm0
- 008D190E push 8D41FCh
- 008D1913 mov eax,dword ptr ds:[008D406Ch]
- 008D1918 push eax
- 008D1919 call std::operator<<<std::char_traits<char> > (08D23F0h)
- 008D191E add esp,8
- 008D1921 mov ecx,eax
- 008D1923 call dword ptr ds:[8D4074h]
- 008D1929 push eax
- 008D192A call std::operator<<<std::char_traits<char> > (08D23F0h)
- 008D192F add esp,8
- ---------------------------------------------------------------------------------------------------------------------------------------
- Note: the required times doesn't change if until hardcoded
- CODE 4: debug mode -> until hardcoded :
- ---------------------------------------
- clock_t start,stop;
- start = clock();
- 002750B2 mov esi,esp
- 002750B4 call dword ptr ds:[281460h]
- 002750BA cmp esi,esp
- 002750BC call __RTC_CheckEsp (0271334h)
- 002750C1 mov dword ptr [start],eax
- for(i=0 ; i<1000000000; i++)
- 002750C4 mov dword ptr [i],0
- 002750CB jmp main+1E6h (02750D6h)
- 002750CD mov eax,dword ptr [i]
- 002750D0 add eax,1
- 002750D3 mov dword ptr [i],eax
- 002750D6 cmp dword ptr [i],3B9ACA00h
- 002750DD jge main+24Eh (027513Eh)
- {
- ExampleArray1[1]++;
- 002750DF mov eax,4
- 002750E4 shl eax,0
- 002750E7 mov ecx,dword ptr [ExampleArray1]
- 002750EA mov edx,dword ptr [ecx+eax]
- 002750ED add edx,1
- 002750F0 mov eax,4
- 002750F5 shl eax,0
- 002750F8 mov ecx,dword ptr [ExampleArray1]
- 002750FB mov dword ptr [ecx+eax],edx
- ExampleArray2[1]++;
- 002750FE mov eax,4
- 00275103 shl eax,0
- 00275106 mov ecx,dword ptr [ExampleArray2]
- 00275109 mov edx,dword ptr [ecx+eax]
- 0027510C add edx,1
- 0027510F mov eax,4
- 00275114 shl eax,0
- 00275117 mov ecx,dword ptr [ExampleArray2]
- 0027511A mov dword ptr [ecx+eax],edx
- ExampleArray3[1]++;
- 0027511D mov eax,4
- 00275122 shl eax,0
- 00275125 mov ecx,dword ptr [ExampleArray3]
- 00275128 mov edx,dword ptr [ecx+eax]
- 0027512B add edx,1
- 0027512E mov eax,4
- 00275133 shl eax,0
- 00275136 mov ecx,dword ptr [ExampleArray3]
- 00275139 mov dword ptr [ecx+eax],edx
- }
- 0027513C jmp main+1DDh (02750CDh)
- stop = clock();
- 0027513E mov esi,esp
- 00275140 call dword ptr ds:[281460h]
- 00275146 cmp esi,esp
- 00275148 call __RTC_CheckEsp (0271334h)
- 0027514D mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 00275150 push 27DC70h
- 00275155 mov eax,dword ptr [stop]
- 00275158 sub eax,dword ptr [start]
- 0027515B cvtsi2ss xmm0,eax
- 0027515F divss xmm0,dword ptr ds:[27DD6Ch]
- 00275167 mov esi,esp
- 00275169 push ecx
- 0027516A movss dword ptr [esp],xmm0
- 0027516F push 27DC7Ch
- 00275174 mov ecx,dword ptr ds:[281390h]
- 0027517A push ecx
- 0027517B call std::operator<<<std::char_traits<char> > (02712B7h)
- 00275180 add esp,8
- 00275183 mov ecx,eax
- 00275185 call dword ptr ds:[281338h]
- 0027518B cmp esi,esp
- 0027518D call __RTC_CheckEsp (0271334h)
- 00275192 push eax
- 00275193 call std::operator<<<std::char_traits<char> > (02712B7h)
- 00275198 add esp,8
- start = clock();
- 0027519B mov esi,esp
- 0027519D call dword ptr ds:[281460h]
- 002751A3 cmp esi,esp
- 002751A5 call __RTC_CheckEsp (0271334h)
- 002751AA mov dword ptr [start],eax
- for(i=0 ; i<1000000000; i++)
- 002751AD mov dword ptr [i],0
- 002751B4 jmp main+2CFh (02751BFh)
- 002751B6 mov eax,dword ptr [i]
- 002751B9 add eax,1
- 002751BC mov dword ptr [i],eax
- 002751BF cmp dword ptr [i],3B9ACA00h
- 002751C6 jge main+337h (0275227h)
- {
- ExampleArray4[1]++;
- 002751C8 mov eax,4
- {
- ExampleArray4[1]++;
- 002751CD shl eax,0
- 002751D0 mov ecx,dword ptr [ExampleArray4]
- 002751D3 mov edx,dword ptr [ecx+eax]
- 002751D6 add edx,1
- 002751D9 mov eax,4
- 002751DE shl eax,0
- 002751E1 mov ecx,dword ptr [ExampleArray4]
- 002751E4 mov dword ptr [ecx+eax],edx
- ExampleArray5[1]++;
- 002751E7 mov eax,4
- 002751EC shl eax,0
- 002751EF mov ecx,dword ptr [ExampleArray5]
- 002751F2 mov edx,dword ptr [ecx+eax]
- 002751F5 add edx,1
- 002751F8 mov eax,4
- 002751FD shl eax,0
- 00275200 mov ecx,dword ptr [ExampleArray5]
- 00275203 mov dword ptr [ecx+eax],edx
- ExampleArray6[1]++;
- 00275206 mov eax,4
- 0027520B shl eax,0
- 0027520E mov ecx,dword ptr [ExampleArray6]
- 00275211 mov edx,dword ptr [ecx+eax]
- 00275214 add edx,1
- 00275217 mov eax,4
- 0027521C shl eax,0
- 0027521F mov ecx,dword ptr [ExampleArray6]
- 00275222 mov dword ptr [ecx+eax],edx
- }
- 00275225 jmp main+2C6h (02751B6h)
- stop = clock();
- 00275227 mov esi,esp
- 00275229 call dword ptr ds:[281460h]
- 0027522F cmp esi,esp
- 00275231 call __RTC_CheckEsp (0271334h)
- 00275236 mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 00275239 push 27DC70h
- 0027523E mov eax,dword ptr [stop]
- 00275241 sub eax,dword ptr [start]
- 00275244 cvtsi2ss xmm0,eax
- 00275248 divss xmm0,dword ptr ds:[27DD6Ch]
- 00275250 mov esi,esp
- 00275252 push ecx
- 00275253 movss dword ptr [esp],xmm0
- 00275258 push 27DC7Ch
- 0027525D mov ecx,dword ptr ds:[281390h]
- 00275263 push ecx
- 00275264 call std::operator<<<std::char_traits<char> > (02712B7h)
- 00275269 add esp,8
- 0027526C mov ecx,eax
- 0027526E call dword ptr ds:[281338h]
- 00275274 cmp esi,esp
- 00275276 call __RTC_CheckEsp (0271334h)
- 0027527B push eax
- 0027527C call std::operator<<<std::char_traits<char> > (02712B7h)
- 00275281 add esp,8
- ---------------------------------------------------------------------------------------------------------------------------------------
- CODE 5: release mode (with optimization) -> until hardcoded:
- Note: in this disassembly is "start = clock()" twice. If I set the breakpoint in the second loop the second is missing !?
- ------------------------------------------------------------
- clock_t start,stop;
- start = clock();
- 00DD131E call dword ptr ds:[0DD30D8h]
- 00DD1324 mov edi,dword ptr [esp+10h]
- 00DD1328 mov dword ptr [esp+1Ch],eax
- 00DD132C mov ecx,3B9ACA00h
- for(i=0 ; i<1000000000; i++)
- {
- ExampleArray1[1]++;
- 00DD1331 inc dword ptr [esi+4]
- ExampleArray2[1]++;
- 00DD1334 inc dword ptr [ebx+4]
- ExampleArray3[1]++;
- 00DD1337 inc dword ptr [edi+4]
- 00DD133A dec ecx
- 00DD133B jne main+0C1h (0DD1331h)
- }
- stop = clock();
- 00DD133D mov edi,dword ptr ds:[0DD30D8h]
- 00DD1343 call edi
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 00DD1345 sub eax,dword ptr [esp+1Ch]
- 00DD1349 mov ecx,dword ptr ds:[0DD3048h]
- 00DD134F movd xmm0,eax
- 00DD1353 cvtdq2ps xmm0,xmm0
- 00DD1356 sub esp,8
- 00DD1359 divss xmm0,dword ptr ds:[0DD3274h]
- 00DD1361 mov edx,0DD31C4h
- 00DD1366 movss dword ptr [esp+4],xmm0
- 00DD136C call std::operator<<<std::char_traits<char> > (0DD18D0h)
- 00DD1371 add esp,4
- 00DD1374 mov ecx,eax
- 00DD1376 call dword ptr ds:[0DD302Ch]
- 00DD137C mov edx,0DD31BCh
- 00DD1381 mov ecx,eax
- 00DD1383 call std::operator<<<std::char_traits<char> > (0DD18D0h)
- start = clock();
- 00DD1388 call edi
- 00DD138A mov edx,dword ptr [esp+0Ch]
- 00DD138E mov edi,dword ptr [esp+18h]
- 00DD1392 mov dword ptr [esp+1Ch],eax
- 00DD1396 mov eax,dword ptr [esp+14h]
- start = clock();
- 00DD139A mov ecx,3B9ACA00h
- 00DD139F nop
- for(i=0 ; i<1000000000; i++)
- {
- ExampleArray4[1]++;
- 00DD13A0 inc dword ptr [eax+4]
- ExampleArray5[1]++;
- 00DD13A3 inc dword ptr [edx+4]
- ExampleArray6[1]++;
- 00DD13A6 inc dword ptr [edi+4]
- 00DD13A9 dec ecx
- 00DD13AA jne main+130h (0DD13A0h)
- }
- stop = clock();
- 00DD13AC call dword ptr ds:[0DD30D8h]
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 00DD13B2 sub eax,dword ptr [esp+1Ch]
- 00DD13B6 mov ecx,dword ptr ds:[0DD3048h]
- 00DD13BC movd xmm0,eax
- 00DD13C0 cvtdq2ps xmm0,xmm0
- 00DD13C3 sub esp,8
- 00DD13C6 divss xmm0,dword ptr ds:[0DD3274h]
- 00DD13CE mov edx,0DD31D4h
- 00DD13D3 movss dword ptr [esp+4],xmm0
- 00DD13D9 call std::operator<<<std::char_traits<char> > (0DD18D0h)
- 00DD13DE add esp,4
- 00DD13E1 mov ecx,eax
- 00DD13E3 call dword ptr ds:[0DD302Ch]
- 00DD13E9 mov edx,0DD31CCh
- 00DD13EE mov ecx,eax
- 00DD13F0 call std::operator<<<std::char_traits<char> > (0DD18D0h)
- ---------------------------------------------------------------------------------------------------------------------------------------
- CODE 6: release mode (without optimization) -> until hardcoded:
- ---------------------------------------------------------------
- clock_t start,stop;
- start = clock();
- 00051776 call dword ptr ds:[540F4h]
- 0005177C mov dword ptr [start],eax
- for(i=0 ; i<1000000000; i++)
- 0005177F mov dword ptr [i],0
- 00051786 jmp main+1A1h (051791h)
- 00051788 mov eax,dword ptr [i]
- 0005178B add eax,1
- 0005178E mov dword ptr [i],eax
- 00051791 cmp dword ptr [i],3B9ACA00h
- 00051798 jge main+209h (0517F9h)
- {
- ExampleArray1[1]++;
- 0005179A mov ecx,4
- 0005179F shl ecx,0
- 000517A2 mov edx,dword ptr [ExampleArray1]
- 000517A5 mov eax,dword ptr [edx+ecx]
- 000517A8 add eax,1
- 000517AB mov ecx,4
- 000517B0 shl ecx,0
- 000517B3 mov edx,dword ptr [ExampleArray1]
- 000517B6 mov dword ptr [edx+ecx],eax
- ExampleArray2[1]++;
- 000517B9 mov eax,4
- 000517BE shl eax,0
- 000517C1 mov ecx,dword ptr [ExampleArray2]
- 000517C4 mov edx,dword ptr [ecx+eax]
- 000517C7 add edx,1
- 000517CA mov eax,4
- 000517CF shl eax,0
- 000517D2 mov ecx,dword ptr [ExampleArray2]
- 000517D5 mov dword ptr [ecx+eax],edx
- ExampleArray3[1]++;
- 000517D8 mov edx,4
- 000517DD shl edx,0
- 000517E0 mov eax,dword ptr [ExampleArray3]
- 000517E3 mov ecx,dword ptr [eax+edx]
- 000517E6 add ecx,1
- 000517E9 mov edx,4
- 000517EE shl edx,0
- 000517F1 mov eax,dword ptr [ExampleArray3]
- 000517F4 mov dword ptr [eax+edx],ecx
- }
- 000517F7 jmp main+198h (051788h)
- stop = clock();
- 000517F9 call dword ptr ds:[540F4h]
- 000517FF mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 00051802 push 541DCh
- 00051807 mov ecx,dword ptr [stop]
- 0005180A sub ecx,dword ptr [start]
- 0005180D cvtsi2ss xmm0,ecx
- 00051811 divss xmm0,dword ptr ds:[54294h]
- 00051819 push ecx
- 0005181A movss dword ptr [esp],xmm0
- 0005181F push 541E4h
- 00051824 mov edx,dword ptr ds:[54064h]
- 0005182A push edx
- 0005182B call std::operator<<<std::char_traits<char> > (0523D0h)
- 00051830 add esp,8
- 00051833 mov ecx,eax
- 00051835 call dword ptr ds:[54034h]
- 0005183B push eax
- 0005183C call std::operator<<<std::char_traits<char> > (0523D0h)
- 00051841 add esp,8
- start = clock();
- 00051844 call dword ptr ds:[540F4h]
- 0005184A mov dword ptr [start],eax
- for(i=0 ; i<1000000000; i++)
- 0005184D mov dword ptr [i],0
- 00051854 jmp main+26Fh (05185Fh)
- 00051856 mov eax,dword ptr [i]
- 00051859 add eax,1
- 0005185C mov dword ptr [i],eax
- 0005185F cmp dword ptr [i],3B9ACA00h
- 00051866 jge main+2D7h (0518C7h)
- {
- ExampleArray4[1]++;
- 00051868 mov ecx,4
- 0005186D shl ecx,0
- 00051870 mov edx,dword ptr [ExampleArray4]
- 00051873 mov eax,dword ptr [edx+ecx]
- 00051876 add eax,1
- 00051879 mov ecx,4
- 0005187E shl ecx,0
- 00051881 mov edx,dword ptr [ExampleArray4]
- 00051884 mov dword ptr [edx+ecx],eax
- ExampleArray5[1]++;
- 00051887 mov eax,4
- ExampleArray5[1]++;
- 0005188C shl eax,0
- 0005188F mov ecx,dword ptr [ExampleArray5]
- 00051892 mov edx,dword ptr [ecx+eax]
- 00051895 add edx,1
- 00051898 mov eax,4
- 0005189D shl eax,0
- 000518A0 mov ecx,dword ptr [ExampleArray5]
- 000518A3 mov dword ptr [ecx+eax],edx
- ExampleArray6[1]++;
- 000518A6 mov edx,4
- 000518AB shl edx,0
- 000518AE mov eax,dword ptr [ExampleArray6]
- 000518B1 mov ecx,dword ptr [eax+edx]
- 000518B4 add ecx,1
- 000518B7 mov edx,4
- 000518BC shl edx,0
- 000518BF mov eax,dword ptr [ExampleArray6]
- 000518C2 mov dword ptr [eax+edx],ecx
- }
- 000518C5 jmp main+266h (051856h)
- stop = clock();
- 000518C7 call dword ptr ds:[540F4h]
- 000518CD mov dword ptr [stop],eax
- cout << "Time: " << static_cast<float>(stop-start)/CLOCKS_PER_SEC << " sec.\n";
- 000518D0 push 541ECh
- 000518D5 mov ecx,dword ptr [stop]
- 000518D8 sub ecx,dword ptr [start]
- 000518DB cvtsi2ss xmm0,ecx
- 000518DF divss xmm0,dword ptr ds:[54294h]
- 000518E7 push ecx
- 000518E8 movss dword ptr [esp],xmm0
- 000518ED push 541F4h
- 000518F2 mov edx,dword ptr ds:[54064h]
- 000518F8 push edx
- 000518F9 call std::operator<<<std::char_traits<char> > (0523D0h)
- 000518FE add esp,8
- 00051901 mov ecx,eax
- 00051903 call dword ptr ds:[54034h]
- 00051909 push eax
- 0005190A call std::operator<<<std::char_traits<char> > (0523D0h)
- 0005190F add esp,8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement