A programozók között sok a tudálékos, én-jobban-tudom megmondóember?
Pedig ha állítasz valamit akkor neked kell.
De megint butaságot beszélsz.
A MOV az adat mozgató utasítás (regiszter- memória)
A XOR bitenkénti logikai utasítás (kizáró vagy)
A kettő teljesen más nem teheted fel azt a kérdést, hogy melyik a jobb. Szerintem tűnj el ebből a topikból
21:
"A kettő teljesen más nem teheted fel azt a kérdést, hogy melyik a jobb. Szerintem tűnj el ebből a topikból"
Mindkét művelet eredménye azonos, csak az XOR rövidebb idő alatt lefut. Neked kéne eltűnnöd a programozás rovatból, úgy, an block, végleg.
#21: igaza van neki
"It's officially recommended by Intel and AMD, and what compilers do."
Ebben a konkrét szituációban most te vagy az "én-jobban-tudom" ember, nem értetted meg az igazi mélységét annak amit írt.
Ha tisztában lennl az Assembly programozással és a processzor működésével akkor tudnád, hogyha
XOR EAX,EAX utasítást használod akkor a processzor felismeri ezt a különleges esetet és MOV EAX,0-nak fogja venni így a futási idő ugyanaz lesz. Annyi a különbség hogy OP kód rövidebb.
"XOR EAX,EAX utasítást használod akkor a processzor felismeri ezt a különleges esetet és MOV EAX,0-nak fogja venni így a futási idő ugyanaz lesz. Annyi a különbség hogy OP kód rövidebb."
A MOV utasítás 6, míg az XOR utasítás 3 órajel alatt fut le.
Tudatlan bohóc vagy te csak, nem programozó.
Az igaz, hogy a processzor (vagy még a fordító) felismer ilyen regiszter nullázó eseteket és felcseréli a MOV-ot XOR-ra (tehát nem úgy, ahogy te írtad, hanem éppen ellenkezőleg), de ez csak újabb processzorokon működik, régebbieken nem. Ezért az XOR reg,reg forma erősen ajánlott. Amúgy, a MOV reg,0 totál ekvivalens az XOR reg,reg utasítással, szóval csak a billentyűzetedet koptattad, ráadásul fölöslegesen, öreg.
"a futási idő ugyanaz lesz"
Ez nem igaz.
"Instruction size does not directly affect performance – you can create lots of benchmarks that will prove that it is harmless – but in most real programs the size of the code does have an effect on performance."
Így se úgyse minden esetben lesz jobb azt használni, szóval nem biztos, hogy feleslegesen koptattam a billentyűzetet, öreg!
Ezért mondom, hogyha nem hiteles forrásokat linkelgettek akkor juttok ebbe...;)
3.5.1.8 -tól.
#28:
15.3.2.5 Zeroing Idioms
XOR / PXOR / XORPS / XORPD instructions are commonly used to force register values to zero when the source and the destination register are the same (e.g. XOR eax, eax).
This method of zeroing is preferred by compilers instead of the equivalent MOV eax, 0x0 instructions as the MOV encoding is larger than the XOR in code bytes.
"Így se úgyse minden esetben lesz jobb azt használni,"
De igen, kedves amatőr, minden esetben jobb az XOR műveletet használni regiszter nullázásra. Nem véletlen, hogy mindenki ezt is használja. Persze te attól használhatsz mást, csak hát, az kit érdekel?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!