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

146

    Vastaukset

    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. Baaritappelu

      Hurjaksi käynyt meno Laffassa. Jotain jätkää kuristettu ja joutunu teholle...
      Kokkola
      66
      6462
    2. Tappo Kokkolassa

      Päivitetty tänään Iltalehti 17.04.2024 Klo: 15:23..Mikähän tämä tapaus nyt sitten taas on.? Henkirikos Kokkolassa on tap
      Kokkola
      27
      4183
    3. Miksi tytöt feikkavat saaneensa orgasmin, vaikka eivät ole saaneet?

      Eräs ideologia itsepintaisesti väittää, että miehet haluavat työntää kikkelinsä vaikka oksanreikään, mutta tämä väite ei
      Sinkut
      270
      2577
    4. Poliisit vaikenee ja paikallinen lehti

      Poliisit vaikenee ja paikallinen lehti ei kerro taposta taaskaan mitään. Mitä hyötyä on koko paikallislehdestä kun ei
      Kokkola
      26
      2010
    5. MAKEN REMPAT

      Tietääkö kukaan missä tämmöisen firman pyörittäjä majailee? Jäi pojalla hommat pahasti kesken ja rahat muisti ottaa enna
      Suomussalmi
      30
      1528
    6. Mitä ihmettä

      Kaipaat hänessä
      Ikävä
      97
      1387
    7. Itämaisesta filosofiasta kiinnostuneille

      Itämaisesta filosofiasta kiinnostuneille. Nämä linkit voivat auttaa pääsemään niin sanotusti alkuun. https://keskustel
      Hindulaisuus
      304
      1107
    8. Kuntoutus osasto Ähtärin tk vuode osasto suljetaan

      5 viikkoa ja mihin työntekijät, mihin potilaat. Mikon sairaalan lopetukset saivat nyt jatkoa. Alavudelle Liisalle tulee
      Ähtäri
      54
      1090
    9. Välillä käy mielessä

      olisiko sittenkin ollut parempi, että emme koskaan olisi edes tavanneet. Olisi säästynyt monilta kyyneleiltä.
      Ikävä
      77
      1036
    10. Mulla on kyllä

      Järkyttävä ikävä sua. Enkä yhtään tykkää tästä olotilastani. Levoton olo. Ja vähän pelottaa..
      Ikävä
      39
      1021
    Aihe