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

168

    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. Kuka maksaa Elokapinan töhrinnän?

      Vieläkö tukevat Elokapinan toimintaa mm. Aki Kaurismäki, Sofi Oksanen, Paleface, Koneen Säätiö ym. ? Kenen kukkarosta ot
      Maailman menoa
      585
      3889
    2. Muuttaisiko viesti mitään

      Haluaisin laittaa viestin, mutta muuttaisiko se mitään. Oletko yhä yhtä ehdoton vai valmis kyseenalaistamaan asenteesi j
      Ikävä
      48
      3328
    3. Jos sinulla kiinnostaisi

      Nyt, miten antaisit minun ymmärtää sen?
      Ikävä
      38
      2801
    4. Valpuri Nykänen elokapina

      Aikas kiihkomielinen nainen kun mtv:n uutiset haastatteli. Tuollaisiako ne kaikki on.
      Maailman menoa
      66
      2769
    5. Oon vähän ihastunut suhun nainen

      Vaikka toisin jokin aika sitten väitin mutta saat mut haluamaan olemaan parempi ihminen :)
      Ikävä
      19
      2154
    6. Jospa me nähtäisiin

      Sinne suuntaan menossa🤣
      Ikävä
      32
      2101
    7. Se että tavattiin

      Hyvin arkisissa olosuhteissa oli hyvä asia. Olimme molemmat lähestulkoon aina sitä mitä oikeasti olemme. Tietysti pieni
      Ikävä
      12
      1977
    8. Elämä jatkuu

      Onneksi ilman sinua
      Ikävä
      29
      1865
    9. Oot pala mun sielua

      Jos toivot, että lähden mä lähden. Jos toivot, että jään mä jään. Koen, että olet mun sielunkumppani, mutta lämmöllä my
      Ikävä
      17
      1810
    10. Hei T........

      Ajattelin kertoa että edelleen välillä käyt mielessä.... En ole unohtanut sinua, enkä varmasti ikinä... Vaikka on kulunu
      Suhteet
      47
      1759
    Aihe