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

173

    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. Uskalla lähestyä minua

      Mitä siinä menetät? Vai tyydytkö kirjoittelemaan täällä? Minä olen jo tehnyt aloitteen. Paitsi jos sinua ei kiinnosta. S
      Ikävä
      60
      6294
    2. Päätin että suostun keskustelemaan

      Jos sellainen tilanne tulee.
      Ikävä
      100
      3252
    3. Oulaskankaan päätöksistä

      https://www.facebook.com/share/v/1BSCFTMTyX/ Nyt tuli kova päätös, arvostan tätä Kuoppamäen suoraselkäisyyttä.
      Oulainen
      25
      2566
    4. EMMINÄ JAKSA OOTTAA KOLMEA VIIKKOA!

      Kyllä se aiemmin parantuu😘
      Ikävä
      21
      2198
    5. Mitä toivot Suomi24:ltä? Osallistu sivuston kehitykseen!

      Moikka keskustelijat! Terveisiä Suomi24:n kehitystiimiltä. Vuosi lähenee loppuaan, mutta ennen kuin rauhoitumme joulun
      Suomi24 Blogi ★
      355
      1788
    6. Tiedoksi että

      En aijo laittaa viestiä enkä soittaa enkä edes harkitse asiaa.
      Ikävä
      27
      1696
    7. Oikeasti tekisi

      Mieli hypätä sun kaulaan eikä kävellä ohi
      Ikävä
      25
      1480
    8. Suomessa oikeistohallitus vallassa: nälkäiset lapset hakevat jo Punaiselta ristiltä ruoka-apua

      Sosiaaliturvaleikkaukset ovat lisänneet asiointia ruoka-avussa. Kyllä tämän maan tilanne on surkea, kun lapset näkevät n
      Perussuomalaiset
      226
      1413
    9. Kyllä mä sen joudun tekemään

      Että lähden pois. Itse halusit että tämä menee näin.
      Ikävä
      49
      1392
    10. Miten menee?

      Tykkäätkö minusta nyt vähemmän kun näit minut?
      Tunteet
      32
      1368
    Aihe