nopeasti | |
---|---|
Kieliluokka | kokoonpanokieli |
Toteutustyyppi | koottu |
Esiintyi | 1999 |
Tekijä | Tomasz Gryshtar |
Tiedostotunniste _ | .asm- kooditiedostoille, .inc- sisällyttää tiedostoille |
Tyyppijärjestelmä | puuttuu |
Tärkeimmät toteutukset | fasm assembler, fasmarm assembler, [[Fresh_(IDE)]] |
Vaikutettu | alun perin TASM , NASM , uusimmalla aikakaudella fasmg (ohjelmointikieli) |
vaikutti | fasmg (ohjelmointikieli) |
Lisenssi | BSD -lisenssin muunnos mahdollisesti GPL :n vastaisella poikkeuksella |
Verkkosivusto | flatassembler.net |
fasm (lyhenne sanoista flat assembler) on eräänlainen assembler-kieli.
Projektin aloitti vuonna 1999 Tomasz Grysztar ( puola: Tomasz Grysztar ).
Fasm pyrkii käyttämään pienintä mahdollista esikäsittelyohjeiden joukkoa, ts. ennalta määrätyssä direktiivijoukossa ei saa ottaa käyttöön uusia direktiivejä, joiden toiminnallisuus voidaan saavuttaa olemassa olevilla direktiiveillä.
Suuntautuminen monenlaisiin käyttöjärjestelmiin (joista kaikki eivät tue monitavuisia merkkejä) rajoittaa lähdeteksteissä käytettyjen kelvollisten merkkien paletin yksitavuisiin muunnelmiin.
Abstraktion "merkki" alla merkki havaitaan viittaamalla tiettyyn ASCII-koodiin, ei tiettyyn tyyliin.
Symbolipaletissa voidaan erottaa erilliset ryhmät:
Lähdeteksti on rivijono, ne kerätään päätiedoston riveiltä, mukana olevien tiedostojen riveiltä päätiedoston riveiltä, sisällytettyjen tiedostojen riveiltä aiemmin sisällytettyihin tiedostoihin jne.
Minkä tahansa päätiedoston tai sisällytettävän tiedoston tekstiä edustaa yleensä kyseisten tiedostojen koko sisältö, mutta se voidaan myös pakottaa päättymään ensimmäiseen havaittuun merkkiin, jonka ASCII-koodi on 0, kun taas tekstin lopun merkki itse ei ole osa tekstiä, joten tämä merkki ei voi esiintyä lähdetekstissä.
Jokainen lähdetekstirivi voi olla tyhjä tai sisältää ohjetekstiä ja/tai kommenttitekstiä.
Ainoa ennalta määritetty kommenttityyppi on yksirivinen, jokainen tällainen kommentti alkaa puolipisteellä ";" ja päättyy rivinvaihtoon.
Jokainen ohje alkaa uudelta riviltä ja täyttää kaikki sen rivin tilan, jota kommentti ei täytä. Mikään käsky ei myöskään voi päättyä kenoviivamerkkiin "\" (ottamatta huomioon välilyöntejä ja sarkaimia sen jälkeen), jos tämä merkki on viimeinen käskyn tekstin varaamassa rivissä, niin sen tilalla ( laitetaan välilyönti ja sitten) ohjeriville liitetään seuraavien sisältö ja niin edelleen rajoittamattomalla sisäkkäisasteella.
Jokaisen käskyn teksti on välttämättä tokenoitu (jäsensytty elementeiksi), kääntäjän sisäisiä tarpeita varten tähän jäsennykseen liittyy merkki ASCII-koodilla 26, joten sitä ei voi käyttää suoraan ohjetekstissä.
Ohjetasolla voit luoda illuusion monirivisesta kommentista. Mutta tällaisen kommentin luonne periytyy ohjeista, sen teksti jäsennetään tyypeiksi, ja siksi ASCII-koodin 26 merkin käyttö tällaisessa kommentissa on kielletty.
Minkä tahansa käskyn runko on sarja elementtejä (tokeneita), joista jokainen voi kuulua johonkin kolmesta eri tyypistä: 1 - itsenäinen merkki, 2 - jatkuva merkki ja 3 - lainausmerkkijono.
Ensimmäinen merkkityyppi on yksimerkkinen elementti ja se nähdään ohjetekstissä itsenäisenä merkinnä riippumatta siitä, onko se erotettu viereisten elementtien tekstistä vai yhdistettykö niihin. Yksimerkkisten elementtien paletti ei ole lukuisa: "+-*/=<>()[]{}:,|&~#`" on erikoismerkkien osajoukko.
Toinen merkkityyppi on monimerkkinen elementti, jonka merkkijono ohjetekstissä alkaa muulla merkillä kuin lainausmerkeillä (kaksois """ ja yksi "'"), on tehty yhdessä eikä sisällä itsenäisiä merkkejä. .
Kolmas merkkityyppi on myös monimerkkinen elementti, mutta jonka merkkijono ohjetekstissä alkaa lainausmerkillä (ei väliä kaksois """ ja yksi "'") ja päättyy vasta samaan lainausmerkki löytyy merkkijonosta, jopa puolipiste ";" kun se kohdataan tällaisessa sarjassa, se ei avaa kommenttia, vaan siitä tulee yksinkertaisesti tämän sekvenssin merkki. Jos saman lainauksen merkki esiintyy yhdessä viimeisen lainauksen jälkeen, 1 merkki tästä lainauksesta sisällytetään sekvenssiin, ja itse sekvenssi jatkuu seuraavaan samaan lainausmerkkiin asti.alku- ja loppulainausmerkit eivät tule osaksi elementtiä, ne toimivat vain indikaattorina sen kirjoittamiselle.
Huomautus : mitkä merkit eivät voi tulla osaksi lainausmerkkijonoa: