Forráskód nem hordozható?

Kezdőlap Fórumok Programozás Forráskód nem hordozható?

10 bejegyzés megtekintése - 71-80 / 81
  • Szerző
    Bejegyzés
  • #2177788
    kisbetu
    Felhasználó

      A gcc ezt mondja:
      gcc version 4.3.1 20080507 (prerelease)

      A csomagkezelő meg ezt:
      4.3-39.1

      #2177789
      kisbetu
      Felhasználó

        A gcc ezt mondja:
        gcc version 4.3.1 20080507 (prerelease)

        A csomagkezelő meg ezt:
        4.3-39.1

        #2177790
        pointux
        Felhasználó
          uzsolt wrote:
          zoltan22 wrote:
          „gcc fajlnev.c -O3”-al mar 10-bol 10-szer NaN az eredmeny.

          Baromi sok

          Code:
          a: 1.000000, b: 2.000000

          az eredményem… Én sose fogok a gépemen NaN-t látni? ???

          Az előzőekben neked sem lett 1.0. (Gondolom nem -O3-mal fordítottad, mert az más kódot generál.)

          Ha a függvényen belül létrehozol egy változót az úgy fog kinézni, hogy az aktuális stack mutatóból fog levonni a változónak megfelelő értéket, tehát pl. ha egy 32 bites adat van ott, akkor 4 byte-ot, ha két 32 bites és a másodikat akarod elérni, akkor 8-at. (És attól függ, hogy előzőleg mi maradt ott.)
          Az O3-mal más ahelyzet, mert ott összegyűjti egy helyre (globálisan) a változókat és egy (16 byte-os határral rendelkező) kód szegmensbe „csomagolja ki” és valószínűleg feltölti 0-val. Ez utóbbi meg (asm.) makró függő, tehát megint fordító kérdése. No, meg egyes műveleteket átcsoportosít és/vagy kihagy… többek között. Ez más eredményt hoz, az utóbbiak nélkül is.

          De pl. egy 0 visszatérési értéket is elő lehet másképp állítani. Pl. egy borland c „xor eax,eax” módon, amíg egy gcc „mov eax,0” módon állít elő. (Persze lehet, hogy Ox-szel másképp állítja elő.) Ez nem okoz más eredményt, de más a kód: gyorsabb/lassabb/kisabb/nagyobb.

          Ajánlom, hogy te is nézegesd a pornót hexában és minden meg fog világosodni. :))))

          #2177791
          pointux
          Felhasználó
            uzsolt wrote:
            zoltan22 wrote:
            „gcc fajlnev.c -O3”-al mar 10-bol 10-szer NaN az eredmeny.

            Baromi sok

            Code:
            a: 1.000000, b: 2.000000

            az eredményem… Én sose fogok a gépemen NaN-t látni? ???

            Az előzőekben neked sem lett 1.0. (Gondolom nem -O3-mal fordítottad, mert az más kódot generál.)

            Ha a függvényen belül létrehozol egy változót az úgy fog kinézni, hogy az aktuális stack mutatóból fog levonni a változónak megfelelő értéket, tehát pl. ha egy 32 bites adat van ott, akkor 4 byte-ot, ha két 32 bites és a másodikat akarod elérni, akkor 8-at. (És attól függ, hogy előzőleg mi maradt ott.)
            Az O3-mal más ahelyzet, mert ott összegyűjti egy helyre (globálisan) a változókat és egy (16 byte-os határral rendelkező) kód szegmensbe „csomagolja ki” és valószínűleg feltölti 0-val. Ez utóbbi meg (asm.) makró függő, tehát megint fordító kérdése. No, meg egyes műveleteket átcsoportosít és/vagy kihagy… többek között. Ez más eredményt hoz, az utóbbiak nélkül is.

            De pl. egy 0 visszatérési értéket is elő lehet másképp állítani. Pl. egy borland c „xor eax,eax” módon, amíg egy gcc „mov eax,0” módon állít elő. (Persze lehet, hogy Ox-szel másképp állítja elő.) Ez nem okoz más eredményt, de más a kód: gyorsabb/lassabb/kisabb/nagyobb.

            Ajánlom, hogy te is nézegesd a pornót hexában és minden meg fog világosodni. :))))

            #2177792
            pointux
            Felhasználó

              Nem is beszélve arról, hogy egy sebesség optimalizáció mit művel a ciklusokkal, meg a kód méretével.
              Amúgy állítólag az újabb gcc-ken (általánosságban) az O2 adja a leggyorsabb kódot. (Persze hozzáértéssel lehet módosítani a dolgokon… ha valaki ismeri a gcc paramétereket… van egy pár. :))))

              #2177793
              pointux
              Felhasználó

                Nem is beszélve arról, hogy egy sebesség optimalizáció mit művel a ciklusokkal, meg a kód méretével.
                Amúgy állítólag az újabb gcc-ken (általánosságban) az O2 adja a leggyorsabb kódot. (Persze hozzáértéssel lehet módosítani a dolgokon… ha valaki ismeri a gcc paramétereket… van egy pár. :))))

                #2177794
                pointux
                Felhasználó

                  Az alapok elsajátításához is van egy kis röffenet.
                  http://alien.dowling.edu/~rohit/nasmdoc0.html

                  #2177795
                  pointux
                  Felhasználó

                    Az alapok elsajátításához is van egy kis röffenet.
                    http://alien.dowling.edu/~rohit/nasmdoc0.html

                    #2177796
                    uzsolt
                    Felhasználó

                      A hosszú, unalmas esték ideje nem most van 😉

                      #2177797
                      uzsolt
                      Felhasználó

                        A hosszú, unalmas esték ideje nem most van 😉

                      10 bejegyzés megtekintése - 71-80 / 81
                      • Be kell jelentkezni a hozzászóláshoz.