gyors | |
---|---|
Nyelvóra | Assembly nyelv |
A végrehajtás típusa | összeállított |
Megjelent | 1999 |
Szerző | Tomasz Gryshtar |
Fájlkiterjesztés _ | .asm- kódfájlokhoz, .inc- belefoglaló fájlokhoz |
Típusrendszer | hiányzó |
Főbb megvalósítások | fasm assembler, fasmarm assembler, [[Fresh_(IDE)]] |
Befolyásolt | eredetileg TASM , NASM , a legújabb időszakban fasmg (programozási nyelv) |
befolyásolta | fasmg (programozási nyelv) |
Engedély | A BSD-licenc változata , esetleg GPL -ellenes kivétellel |
Weboldal | flatassembler.net |
A fasm (a flat assembler rövidítése) az assembly nyelv egy fajtája.
A projektet 1999-ben Tomasz Grysztar ( lengyelül: Tomasz Grysztar ) indította el.
A Fasm hajlamos az előfeldolgozó direktívák lehető legkisebb halmazát használni, pl. előre definiált direktívákban tilos új direktívákat bevezetni, amelyek funkcionalitása meglévő direktívakészlettel érhető el.
Az operációs rendszerek széles köréhez való orientáció (nem mindegyik támogatja a többbájtos karaktereket) a forrásszövegekben használt érvényes karakterek palettáját egybájtos változatokra korlátozza.
Az absztrakciós „karakter” alatt a karakter egy adott ASCII-kódra hivatkozva érzékelhető, nem pedig egy adott stílusra.
A szimbólumpalettán külön csoportok különböztethetők meg:
A forrásszöveg sorok sorozata, ezeket a főfájl soraiból gyűjtik össze, a benne lévő fájlok soraitól a fő fájlig, a beépített fájlok soraitól a korábban bevitt fájlokig stb.
Bármely fő vagy benne lévő fájl szövegét általában a fájlok teljes tartalma képviseli, de az is előfordulhat, hogy az első talált karakterrel végződjön 0-s ASCII-kóddal, míg maga a szövegvégi karakter nem része a szövegnek, így ez a karakter nem jelenhet meg a forrásszövegben.
Minden forrásszöveg sor lehet üres, vagy tartalmazhat utasításszöveget és/vagy megjegyzés szöveget.
Az egyetlen előre meghatározott típusú megjegyzés egysoros, minden ilyen megjegyzés pontosvesszővel kezdődik ";" és sortöréssel végződik.
Minden utasítás egy új sorban kezdődik, és kitölti a sorban a megjegyzés által nem foglalt helyet. Ezenkívül egyetlen utasítás sem végződhet "\" fordított perjelre (a szóközök és a tabulátorok figyelembe vétele nélkül), ha ez a karakter az utolsó az utasítás szövege által elfoglalt sor terében, akkor a helyén ( szóközt teszünk, majd) az utasítássorokhoz csatoljuk a következők tartalmát, és így tovább korlátlan beágyazási szinten.
Az egyes utasítások szövege szükségszerűen tokenizált (elemekre tagolt), a fordító belső szükségletei miatt ennek az elemzésnek a folyamatában egy 26-os ASCII kódú karakter vesz részt, így az utasításszövegben közvetlenül nem használható.
Az utasítások szintjén egy többsoros megjegyzés illúzióját keltheti. De az ilyen megjegyzések természete az utasításokból öröklődik, szövegét típusokba elemezzük, ezért tilos egy ilyen megjegyzésben 26-os ASCII-kóddal rendelkező karaktert használni.
Bármely utasítás törzse elemek (tokenek) sorozata, amelyek mindegyike három különböző típus valamelyikébe tartozhat: 1 - független karakter, 2 - folyamatos token és 3 - idézőjeles karakterlánc.
Az első típusú token egykarakteres elem, és az utasításszövegben önálló karakterként érzékeljük, függetlenül attól, hogy el van-e választva a szomszédos elemek szövegétől, vagy össze van vonva velük. Az egykarakteres elemek palettája nem sok: a "+-*/=<>()[]{}:,|&~#`" a speciális karakterek részhalmaza.
A második típusú token egy többkarakteres elem, amelynek karaktersorozata az utasításszövegben az idézőjelektől eltérő karakterrel kezdődik (dupla """ és egyszeres "'"), együtt készül, és nem tartalmaz független karaktereket. .
A harmadik típusú token szintén többkarakteres elem, de a karaktersorozat az utasításszövegben idézőjel karakterrel kezdődik (nem számít dupla """ és egyszeres "'"), és nem ér véget. idézet karakter található a karakterláncban, még pontosvessző karakter is ";" ha egy ilyen sorozaton belül találkozunk, akkor nem nyit meg megjegyzést, hanem egyszerűen ennek a sorozatnak a karakterévé válik. Ha ugyanazon idézet karaktere együtt jelenik meg az utolsó idézet után, akkor ebből az idézetből 1 karakter szerepel a sorozatban, és maga a sorozat a következő azonos idézőjel karakterig folytatódik, a nyitó és záró idézőjel nem válik az elem részévé, csak jelzésül szolgál annak begépeléséhez.
Megjegyzés : mely karakterek nem lehetnek az idézőjeles karakterlánc részei: