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

185

    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. Janne Ahonen E R O A A

      Taas 2 lasta jää vaille ehjää perhettä!
      Kotimaiset julkkisjuorut
      147
      2609
    2. En kai koskaan saa sinua

      Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k
      Ikävä
      154
      1659
    3. Terveystalon lääkärit ylilaskuttaneet

      Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K
      Maailman menoa
      134
      1634
    4. Saran ökytyyli käänsi katseita.

      On nyt kyllä Sara kasvoistaan, kuvan perusteella todellakin pyöristynyt ainakin kuvan perusteella.
      Kotimaiset julkkisjuorut
      149
      1368
    5. Nyt on aika laittaa parit selkoon.

      Onko pareja täällä. Laita kirjaimet kuka tykkää kenestäkin ?
      Ikävä
      66
      1338
    6. The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."

      Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut
      Tv-sarjat
      13
      1180
    7. Työttömille lusmuille luvassa lisää keppiä

      Hallitus aikoo kiristää velvoitteiden laiminlyönnistä seuraavia työttömyysturvan karensseja ensi vuodesta alkaen. Hall
      Maailman menoa
      284
      1174
    8. Ootko huomannut miten

      pursuat joka puolelta. Sille joka luulee itsestään liikoja 🫵🙋🏻‍♂️
      Ikävä
      156
      976
    9. Miksi ihmeessä?

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek
      Ateismi
      22
      934
    10. Tiedän kaiken sinusta ja kaikesta

      Tiedän miten kärsit. Tiedän millanen oikeesti oot. Tiedän miksi valehtelit, tiedän miksi satutit mua. Tiedän mitä tapaht
      Ikävä
      58
      889
    Aihe