GNU assembler (gas) ja linkkeri (ld ?)

Anonyymi-ap

1. Onko normaalia toimintaa GNU assemblerilta, että vain .o -tiedostoon menee oikea data, ja .lst -tiedostoon tulee väärää dataa ?

Esim. kun on hyppykäsky tai funktiokutsukäsky (jmp, call, rjmp, rcall), niin käskyn ns. opkoodi on oikein, mutta kohdeosoite on .lst -tiedostossa aina sama, eli jos on 2 eri funktiokutsua, niin .lst -tiedostossa molemmille näkyy sama kohdeosoite, ja relatiivisilla kutsutavoilla kohdeosoite ei ole sama, mutta etäisyys kutsusta kohteeseen on sama (taitaa olla aina 0).

Entä, miten on linkkrin (ld ?) laita ?

JOS gas on saanut .lst -tiedostoon väärän kohdeosoitteen, niin korjautuuko tuo esim. .bin tai .hex -tiedostoon oikeaksi, vai jääkö vääräksi ?

Yritän siis tässä kysellä sitä, että muodostavatko gas ja ld siinä mielessä yhden kokonaisuuden, että .lst -tiedosto ei gas:n tapauksessa ole edes tarkoitus olla absoluuttisesti oikea, vaan vasta linkkeri (ld) korjaa kohdeosoitteet oikeaksi, vai jääkö vääräksi kokonaan ?

Tässä on kyse AVR -mikrokontrollerille kääntävästä (gas) ja linkkaavasta (ld) ohjelmasta - mutta käsittääkseni toimintaperiaatteet ovat gas ja ld osalta samat x86 -versiossa ja AVR -crosscompiler -versiossa. Cross siinä mielessä, että vaikka käännetään AVR:lle, niin kääntäminen tapahtuu Windows -PC:ssä.

Voisi (gas, ld) tietysti teoriassa olla 64 -bittinenkin ohjelma, mutta tästä ei ole käytännössä mitään hyötyä - kun AVR:n muisti lasketaan kilotavuissa, niin 32 -bittisen ohjelman kokorajoituksella ei ole mitään merkitystä.

Vaihtoehto toki olisi käyttää jotain muuta assembleria, siis sellaista, joka osaa itse luoda intel hex -formaattia olevan tiedoston AVR:lle siirtoa varten, jolloin erillistä linkkausvaihetta ei tarvita lainkaan. Mutta gas:n kanssa tarvitaan.

Assemblerin vaihto toiseen vain tässä tarkoittaisi sitä, että joutuisin itse koodaamaan apuohjelman, joka muuntaa gas -syntaksia esim. AVRA:lle sopivaksi.

0

612

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000

      Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

      Luetuimmat keskustelut

      1. Rakas

        Eihän se tietysti minulle kuulu, mutta missä sinä olet? 😠
        Ikävä
        69
        4377
      2. Pidit itseäsi liian

        Vanhana minulle? Niinkö?
        Ikävä
        66
        4032
      3. Kiva kun SDP alkaa hallitsemaan Suomea

        Vanhat hyvät ajat taas palaavat ja kansa vaurastuu. Muistatteko vielä Sorsan aikakauden? Silloin Suomessa tehtiin jopa
        Maailman menoa
        117
        3872
      4. SDP:n lyhyt selviytymisopas

        1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p
        Maailman menoa
        76
        3215
      5. Joko olet luovuttanut

        Mun suhteen?
        Ikävä
        86
        3152
      6. Haluaisitko oikeasti

        Vakavampaa välillemme vai tämäkö riittää
        Ikävä
        63
        2397
      7. Keskisen kyläkaupassa Temun vaatteita myynnissä?

        Siis mitä? Miksi siis ei itse tilaisi Temusta samoja.
        Maailman menoa
        62
        1786
      8. SÄHKÖLASKU 1600 EUROA Ei tässä ole mitään järkeä

        https://www.is.fi/taloussanomat/art-2000011804443.html Kyllä täysin huijausta nämä sähkömarkkinat. Varsinkin pörssisähk
        Maailman menoa
        216
        1260
      9. Nanna Karalahti :Paljastus bisneksistä Jere Karalahden kanssa!

        Ottanut yhteyttä seiskalehden toimittajaan ja kertonut totuuden yhteisestä Herotreeni-nimisestä verkkovalmenuksesta.
        Kotimaiset julkkisjuorut
        128
        1243
      10. Mitä se olisi

        Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?
        Ikävä
        41
        1235
      Aihe