operaatio "XCHG EAX,EAX" on nopeampi tehtä c-kielellä ja muilla tavoin.
Kun ei perusasioita ymmärrä, niin odotan innolla c-rutiinin joka tekee tuollaisen rekisterioperaation nopeammin!
Joku vaan inttää tätä faktaa vastaan:
6
215
Vastaukset
- trololololol.
asm("nop"); ?
- oikeassaoletkyllä
Aivan, mutta kauanko vie aikaa tuon c-funktion kutsuminen joka tuon funktion suorittaa?
Onko silloin No Operation?- Ei ole funktio
"Aivan, mutta kauanko vie aikaa tuon c-funktion kutsuminen joka tuon funktion suorittaa?"
Tuostahan ei tule funktiokutsua. Kääntyy ihan siihen paikalleen.
asm -jututhan ovat kyllä c-kielen lisämausteita. Jos niitä on käytettävissä, saa xchg-käskyn toimimaan tasan yhtä nopeasti C:llä. Jos ei ole, voi olla vaikeaa tehdä sellaista c-koodia, joka kääntyisi nimenomaan "xchg eax, eax" -käskyksi.
- vaihdakoodisegmentti
Entä käskyt:
push ax
pop cs
Eli koodisegmentin muuttaminen pinon kautta, miten teet c-kielellä paremmin?- Delphi+Asm!
pop CS ????
Nykyprosessoreissa tuota käskyä ei ole olemassakaan, sama konekielikoodi (1 tavu) on otettu muuhun käyttöön.
Ainoa, missä tuo käsky on edes teoriassa ollut olemassa, on 8086 ja 8088.
Ja niissäkin, jotta tuo tekisi mitään järkevää, pitäisi olla 2 koodisegmenttiä siten, että kun CS muutetaan mutta IP (niin, 8086/8088:ssa se on nimenomaan IP, ei EIP)
ei muuteta, niin tuo pitää tehdä niin, että eri koodisegmentissä, mutta samassa ofssetissa kuin tuon pop CS jälkeinen käsky, on todella jotain järkevää koodia, muussa tapauksessahan tuo alkaa suorittaa satunnaista dataa konekielikoodina, ja siitä ei yleensä hyvää seuraa !
Vaikka tuollaisen koodin oikein tekeminen on toki mahdollista, niin kuka (poikkeuksena ehkä viruskoodarit) haluaa tehdä tuota, kun JMP / CALL / RET -käskyt ovat paljon fiksumpia tapoja kun halutaan hypätä koodissa eri kohtaan suoritusta jatkamaan.
Mutta, mitäpä C:llä sekoilemaan, Delphi assembly -yhdistelmä riittää minulle. - 4324234234234324
Delphi+Asm! kirjoitti:
pop CS ????
Nykyprosessoreissa tuota käskyä ei ole olemassakaan, sama konekielikoodi (1 tavu) on otettu muuhun käyttöön.
Ainoa, missä tuo käsky on edes teoriassa ollut olemassa, on 8086 ja 8088.
Ja niissäkin, jotta tuo tekisi mitään järkevää, pitäisi olla 2 koodisegmenttiä siten, että kun CS muutetaan mutta IP (niin, 8086/8088:ssa se on nimenomaan IP, ei EIP)
ei muuteta, niin tuo pitää tehdä niin, että eri koodisegmentissä, mutta samassa ofssetissa kuin tuon pop CS jälkeinen käsky, on todella jotain järkevää koodia, muussa tapauksessahan tuo alkaa suorittaa satunnaista dataa konekielikoodina, ja siitä ei yleensä hyvää seuraa !
Vaikka tuollaisen koodin oikein tekeminen on toki mahdollista, niin kuka (poikkeuksena ehkä viruskoodarit) haluaa tehdä tuota, kun JMP / CALL / RET -käskyt ovat paljon fiksumpia tapoja kun halutaan hypätä koodissa eri kohtaan suoritusta jatkamaan.
Mutta, mitäpä C:llä sekoilemaan, Delphi assembly -yhdistelmä riittää minulle.pop cs on sellainen hyppy, jolla hypätään toiseen koodiin, esim. videomuistiin suorittamaan jatkavaa koodia, esim:
push ax
pop cs
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Riikan perintö: ennätysvelka, ennätystyöttömyys ja ennätysverotus
Tavallisen keskituloisen suomalaisen verotus on kireintä vuosikymmeniin, ja ensi vuonna palkansaajien käteen jää vieläki2193670Mies, näen sinua hetken
ja olet mielessä ikuisuuden. Toisia näen ikuisuuden ja he eivät jää mieleen hetkeksikään. Muistan jokaisen kohtaamisen163627Riikka Purra on ihana, jämpti
Hän yrittää saada Suomen taas kuntoon. Sanoo asiat suoraan, eikä piiloudu kapulakielen taakse. Riikan kaltaisia päättä942639Antti Lindtman kiitti valtiovarainministeri Purraa
Ministeri Purra kertoi ottavasa vastuun EU:n alijäämämenettelyyn joutumisesta. Hän myös sanoi tietävänsä, että Lindtman172229Henkilökohtaisia paljastuksia Dubaista - Kohujulkkis Sofia Belorf on äitipuoli ja puoliso!
Tiesitkö, että Sofia on äitipuoli ja rakastava puoliso? Sofia Belorf saa oman sarjan, jossa seurataan hänen Bling Bling622199Suomalaisten enemmistö on (ateisteja / fiksuja / sosialisteja)
Tai jokin noiden yhdistelmä, koska S-ryhmän markkinaosuus päivittäistavarakaupasta on yli 50 prosenttia.131936Sorsa: kuvaputki - Lipponen: kaasuputki - Marin: ryppyputki
Nuo kolme demaria ovat poikkeuksia Suomen poliittisessa historiassa. Ovat ainoita, jotka ovat kyenneet nostamaan puolue491757"Purra löylytti oppositiota", sanoi naistoimittaja Pöllöraadissa
Kyllä, Purra tekee juuri sitä työtä mitä hänen tuossa asemassa pitää tehdä, hän antaa oppositiolle takaisin samalla mita141616- 901601
- 861245