Sisältääkö C Assemblyn

Olen pitänyt C:tä ja Assemblyä eri kielinä. Näin kuitenkin osoitteesta http://en.wikipedia.org/wiki/GNU_Multi-Precision_Library , että GMP olisi kirjoitettu C:llä. Toisaalta GMP:n dokumentin kohdassa 3.13 Profiling lukee: Most of the GMP assembly code has the necessary symbol information.

Eli onko kyseessä kaksi eri kieltä vai onko Assembly C:n osajoukko?
3380
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

että sitä ohjelmoijan konekilistä koodia tarvitsee kääntää enää ykkösnollille: joskus ohjelmoija voi kuvitella, että hän pystyy tuottamaan parempaa konekieltä kuin kone ja siksi kone kääntäjineen antaa ohjelmoijalle tilaisuutensa näyttää tällä tavalla Assemblyllä kyntensä olemalla optimoimatta tai muutenkaan ronkkimatta sitä kohtaa koodista millään tavalla enänpi mieleisekseen.

Äänestä

"Eli onko kyseessä kaksi eri kieltä vai onko Assembly C:n osajoukko?"

Koska C-ohjelma käännetään konekoodiksi, niin sitä voi myös sorkkia Assembly-koodilla, joko inline:nä tai erillinen assembly-tiedosto, joka linkitetään mukaan tai vaikkapa kääntää C-tiedosto ensin assembly-koodiksi, sitten editointi ja lopullinen käännös.
Sama on mahdollista *kaikissa* konekoodia pukkaavissa kieli kääntäjä yhdistelmissä, ei vain C:ssä.

Jos vertaa tavukoodiksi kääntyviä kieliä, niin lienee selvää ettei niissä ole assembly mahdollisuutta. Toki epäsuorasti voidaan esim. Pythonissa kutsua C-kielistä osaa, josta taas osa on käsin kirjoitettua assembly-koodia.

Äänestä

C-kielen kääntäjä toimii kaksiosaisesti, ensin C-käännetään assemblyksi
ja se sitten vasta kohdekoneen konekoodiksi.
Näin siksi, että jos kohdeprosessorin konekieli vaihtuu niin varsinaiseen
C-koodiin ei tarvitse tehdä mitään muutoksia, ainostaan jälkimmäinen
kääntäjän osa vaihdetaan kohteen mukaan.

Tämä mahdollistaa sen, että koodaaja voi C-kielen joukkoon laittaa
assemblyä vähän samaan tapaan kuin html:n joukkoon PHP:ta.

Tarkemmin en osaa nykyohjelmoijia tässä neuvoa, en ole koodannut
C:tä vakavissani enää 20:een vuoteen.

Äänestä

Kommentoi aloitusta


Kielitieteilijä kirjoitti:

Olen pitänyt C:tä ja Assemblyä eri kielinä. Näin kuitenkin osoitteesta http://en.wikipedia.org/wiki/GNU_Multi-Precision_Library , että GMP olisi kirjoitettu C:llä. Toisaalta GMP:n dokumentin kohdassa 3.13 Profiling lukee: Most of the GMP assembly code has the necessary symbol information.

Eli onko kyseessä kaksi eri kieltä vai onko Assembly C:n osajoukko?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu