snabb | |
---|---|
Språkklass | assembleringsspråk |
Utförandetyp | sammanställt |
Framträdde i | 1999 |
Författare | Tomasz Gryshtar |
Filtillägg _ | .asm- för kodfiler, .inc- för include-filer |
Typ system | saknas |
Stora implementeringar | fasm assembler, fasmarm assembler, [[Fresh_(IDE)]] |
Blivit påverkad | ursprungligen TASM , NASM , i den senaste perioden fasmg (programmeringsspråk) |
påverkas | fasmg (programmeringsspråk) |
Licens | Variant av BSD-licensen med möjligen ett anti- GPL - undantag |
Hemsida | flatassembler.net |
fasm (förkortning för flat assembler) är en typ av assemblerspråk.
Projektet startades 1999 av Tomasz Grysztar ( polska: Tomasz Grysztar ).
Fasm tenderar att använda den minsta möjliga uppsättningen av förprocessordirektiv, dvs. i en fördefinierad uppsättning direktiv är det inte tillåtet att införa nya direktiv, vars funktionalitet kan uppnås genom en befintlig uppsättning direktiv.
Orientering till ett brett utbud av operativsystem (som inte alla stöder multibyte-tecken) begränsar paletten av giltiga tecken som används i källtexter till varianter av en byte.
Under abstraktionen "karaktär" uppfattas en karaktär med hänvisning till en specifik ASCII-kod, och inte till en specifik stil.
Separata grupper kan urskiljas i symbolpaletten:
Källtexten är en sekvens av rader, de samlas in från raderna i huvudfilen, från raderna med inkluderade filer till huvudfilen, från raderna med inkluderade filer till tidigare inkluderade filer, etc.
Texten i en huvudfil eller inkluderad fil representeras vanligtvis av hela innehållet i dessa filer, men den kan också tvingas sluta med det första tecknet som påträffas med en ASCII-kod på 0, medan slutet av texttecknet i sig inte är del av texten, så detta tecken kan inte förekomma i källtexten.
Varje källtextrad kan vara tom eller innehålla instruktionstext och/eller kommentarstext.
Den enda fördefinierade typen av kommentar är en rad, varje sådan kommentar börjar med ett semikolon ";" och avslutas med en radbrytning.
Varje instruktion börjar på en ny rad och fyller hela utrymmet på den raden som inte tas upp av en kommentar. Dessutom kan ingen instruktion sluta med ett omvänt snedstreck "\" (utan att ta hänsyn till mellanslag och tabbar efter det), om detta tecken är det sista i utrymmet på raden som upptas av texten i instruktionen, då på dess plats ( ett mellanslag sätts, och sedan) läggs innehållet i följande till instruktionsraderna, och så vidare med en obegränsad nivå av kapsling.
Texten för varje instruktion är nödvändigtvis tokeniserad (tolkad i element), för kompilatorns interna behov är ett tecken med ASCII-kod 26 involverat i processen för denna analys, så det kan inte användas direkt i instruktionstexten.
På instruktionsnivån kan du skapa en illusion av en kommentar med flera rader. Men karaktären av en sådan kommentar kommer att ärvas från instruktionerna, dess text kommer att tolkas i typer, och därför kommer användningen av ett tecken med ASCII-kod 26 inuti en sådan kommentar att vara förbjuden.
Brödtexten i en instruktion är en sekvens av element (tokens), som var och en kan tillhöra en av tre olika typer: 1 - ett oberoende tecken, 2 - ett kontinuerligt tecken och 3 - en citattecken.
Den första typen av token är ett enkaraktärselement och uppfattas i instruktionstexten som ett oberoende tecken, oavsett om det är separerat från texten i angränsande element eller är sammanfogat med dem. Paletten med enteckenelement är inte många: "+-*/=<>()[]{}:,|&~#`" är en undergrupp av specialtecken.
Den andra typen av token är ett element med flera tecken, vars sekvens av tecken i instruktionstexten börjar med ett annat tecken än citattecken (dubbel """ och enkel "'"), är gjorda tillsammans och inkluderar inte oberoende tecken .
Den tredje typen av token är också ett element med flera tecken, men sekvensen av tecken i instruktionstexten börjar med ett citattecken (spelar ingen roll dubbel """ och enkel "'") och slutar inte förrän samma citattecken påträffas i strängen, även semikolontecken ";" när den påträffas inom en sådan sekvens, öppnar den ingen kommentar, utan blir helt enkelt ett tecken i denna sekvens. Om ett tecken i samma citat visas tillsammans efter det sista citatet, så ingår 1 tecken av detta citat i sekvensen, och sekvensen i sig fortsätter tills nästa samma citattecken. De inledande och avslutande citattecken blir inte en del av elementet, de tjänar bara som en indikator för dess typning.
Obs : vilka tecken kan inte bli en del av en citatsträng: