Joku vaan inttää tätä faktaa vastaan:

todistatekemällä

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!

6

244

    Vastaukset 6

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Suomalaisten pinna paloi - Ärsytys iskee uudesta TTK-juontajasta "Eihän tälle voi kun nauraa"

      Oliko Veronica Verho hyvä valinta TTK-juontajaksi? Uuden TTK-juontajan henkilöllisyyttä on arvailtu siitä asti, kun Va
      Suomalaiset julkkikset
      110
      2321
    2. Mitä tapahtuu?

      Mitä tapahtuu Humalojalla? Poliiseja talon ympärillä ja paljon ihmisiä pitkin pihoja???
      Haapavesi
      25
      1036
    3. T rakastan sua

      vaikket sitä usko
      Ikävä
      71
      922
    4. Mitäpä luulet että tykkääkö

      kukaan kaivatustasi ?
      Ikävä
      103
      906
    5. Suomi on viittä vaille sodassa Venäjän kanssa...

      ...syynä tähän on kokoomuslainen presidenttimme Stubb. Hän on ainoa eurooppalaisen maan johtaja, joka kärkkäästi ja taha
      Maailman menoa
      591
      865
    6. Varmaan aika moni

      Haluaisi sinut enemmän kuin mielellään
      Ikävä
      48
      855
    7. Miksi et lähesty minua

      Jos kerran kaipaat, mies? Mitä pelkäät?
      Ikävä
      82
      748
    8. Olen vähän epävarma siitä, oletko kiltti

      Nainen, ensivaikutelma oli, että olet tosi hyväsydäminen eli siinä mielessä harvinaisuus. Eli et mene virran mukana, etk
      Ikävä
      76
      680
    9. Kai sä olet

      Luovuttanut mun suhteen.
      Ikävä
      69
      654
    10. Herkkä, hellä, aurinkoinen, kaunis upea, valonsäde on hän nainen

      Ja myös fiksu, älykäs ja luonnonläheinen. Erittäin mielenkiintoinen ja kiltti ihminen. Haluan tuntea hänet, koska kaik
      Ikävä
      31
      646
    Aihe