|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
12.5.2011, 21:49 | #41 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
Jel moze ovde kratko objasnjenje?
Po nekoj mojoj logici kad gledam ovo: Kod:
01011080 mov esi,dword ptr [eax]//esi pokazuje na element registra eax (verovatno arr) 01011082 and esi,1 //esi & 1 01011085 add eax,14h //??? dodaj nesto? 01011088 dec ecx //dekrementacija pokazivaca 01011089 jne main+60h (1011080h)//skok na neku lokaciju u kodu |
12.5.2011, 21:49 | #42 | |
V.I.P. Programiranje
|
Re: C++ Pomozite mi
Citat:
|
|
12.5.2011, 21:52 | #43 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
@Todors
Kod:
ulong* arr = new ulong[brElemenata]; ... delete [] arr; |
Sledeći korisnik se zahvaljuje korisniku Belphegor na korisnoj poruci: | ||
Todors (12.5.2011) |
12.5.2011, 22:00 | #44 |
Član
Član od: 16.4.2010.
Lokacija: Pančevo
Poruke: 462
Zahvalnice: 41
Zahvaljeno 68 puta na 63 poruka
|
Re: C++ Pomozite mi
|
12.5.2011, 22:06 | #45 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
Jesi li siguran da si "build-ovao" kao release?
edit: AUUU al' sam se izleteo mozda covek koristi drugi kompajler. |
12.5.2011, 22:13 | #46 |
Član
Član od: 16.4.2010.
Lokacija: Pančevo
Poruke: 462
Zahvalnice: 41
Zahvaljeno 68 puta na 63 poruka
|
Re: C++ Pomozite mi
lol, to nisam dirao . U pravu si, evo sad i meni izračunava isto. U čemu je caka?
Ja sam samo ovo drugo promenio |
12.5.2011, 22:13 | #47 |
Starosedelac
|
Re: C++ Pomozite mi
@Todors
Koji kompajler koristis? @Geomaster Pogledaj moj editovani post. Kratak odgovor je - da, full. @Belphegor 00FF1080 mov esi,dword ptr [eax] Smesta vrednost u nizu na koju pointer (cija se vrednost nalazi u EAX) pokazuje u ESI registar (koji je zapravo temp). 00FF1082 and esi,1 konkretna and operacija nad ESI registrom 00FF1085 add eax,14h Inkrementacija pointera na sledeci element 00FF1088 dec ecx Smanjuje brojac for petlje 00FF1089 jne main+60h (0FF1080h) Ukoliko ZF (zero flag) flag nije setovan, skace na adresu 0ff1080h (prva instrukcija). ZF ce biti setovan kada poslednja aritmetička operacija (u ovom slučaju dec ecx) rezultira nulom. Poslednja ispravka: MG-RAY (12.5.2011 u 22:30) |
Sledeći korisnik se zahvaljuje korisniku MG-RAY na korisnoj poruci: | ||
Belphegor (12.5.2011) |
12.5.2011, 22:17 | #48 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
@MG-RAY
Hvala puna na objasnjenju. Isti mi je rezlutat iako je temp deklarisan van petlje. |
12.5.2011, 22:25 | #49 |
Starosedelac
|
Re: C++ Pomozite mi
|
12.5.2011, 22:29 | #50 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
@MG-RAY
sad sam dodao da ispise temp cisto da zna da se koristi i rezlutat je: WTF? Brzi modulo??!!!?? prvi loop Kod:
for(ulong i = 0; i < brElemenata; ++i) 012B107F xor eax,eax 012B1081 xor ecx,ecx 012B1083 add eax,1 012B1086 adc ecx,0 012B1089 jne main+72h (12B1092h) 012B108B cmp eax,2FAF080h 012B1090 jb main+63h (12B1083h) { temp = arr[i] % 2; } Kod:
for(ulong i = 0; i < brElemenata; ++i) 012B1111 xor eax,eax 012B1113 xor ecx,ecx { temp = arr[i] & 1; 012B1115 mov esi,dword ptr [edi+eax*8] 012B1118 and esi,1 012B111B xor ebx,ebx 012B111D add eax,1 012B1120 adc ecx,ebx 012B1122 jne main+10Bh (12B112Bh) for(ulong i = 0; i < brElemenata; ++i) 012B1124 cmp eax,2FAF080h 012B1129 jb main+0F5h (12B1115h) } |
12.5.2011, 22:31 | #51 | |
Starosedelac
|
Re: C++ Pomozite mi
Citat:
P.S. Ispiši vrednost posle svake petlje, jer ako uradiš to samo posle druge, opet će ukloniti prvu, jer se tehnički ne koristi... Možeš da pogledaš moj kod na prethodnoj strani i vidiš o čemu pričam... EDIT: Sada vidim, u prvom slučaju kompajler je razvio samo praznu petlju.... |
|
Sledeći korisnik se zahvaljuje korisniku MG-RAY na korisnoj poruci: | ||
Belphegor (12.5.2011) |
12.5.2011, 22:36 | #52 | |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: C++ Pomozite mi
Citat:
|
|
12.5.2011, 22:38 | #53 |
Član
Član od: 16.4.2010.
Lokacija: Pančevo
Poruke: 462
Zahvalnice: 41
Zahvaljeno 68 puta na 63 poruka
|
Re: C++ Pomozite mi
|
12.5.2011, 22:43 | #54 |
V.I.P. Programiranje
|
Re: C++ Pomozite mi
To je to, problem solved
Inače, nikad nisam gledao kako kompajler pretvara kôd u asm, ali sada kad vidim mogu da kažem da je inteligentno, "setio se" da u okviru optimizacije koristi pointer |
14.5.2011, 14:17 | #55 |
V.I.P. Zaštita
Član od: 30.9.2007.
Lokacija: Hypnos Control Room, Tokyo Metropolitan Government Building
Poruke: 5.914
Zahvalnice: 1.181
Zahvaljeno 1.320 puta na 1.094 poruka
|
Re: C++ Pomozite mi
Da ne otvaram novu temu, da i ja nešto priupitam.
Da li postoji neki način da se fajl učita navođenjem „%AllUsersProfile%\\Application Data\\...” i „"%ProgramData%\\...” umjesto navođenja aspolutne adrese (C:\\...) ili postoji neka metoda koja vraća string lokacije %AllUsersProfile% i %ProgramData%? |
14.5.2011, 14:58 | #56 | |
V.I.P. Programiranje
|
Re: C++ Pomozite mi
Citat:
Kod:
std::string str(getenv("ProgramData")); str += "\\..."; |
|
Sledeći korisnik se zahvaljuje korisniku Geomaster na korisnoj poruci: | ||
Sass Drake (15.5.2011) |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Pomozite u izboru | ekvi | ŠDK - Prenosni računari | 6 | 22.2.2011 22:21 |
msi nx7600gt agp problem pomozite | Daco89 | Kvarovi | 0 | 23.1.2010 21:40 |
Monitor Trilema? Pomozite | maestrobg | ŠDK - Osnovne komponente | 8 | 22.1.2010 12:43 |
Maticna ploca! Pomozite MOLIM WAS!! | whYY | Ostale komponente | 1 | 8.1.2010 5:03 |
Molim pomozite, posao mi zavisi od ovoga (Thunderbird)! | salegl | Aplikativni softver | 20 | 3.4.2008 22:28 |