Fasm (limbaj de programare)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 10 aprilie 2021; verificarea necesită 1 editare .
rapid
Clasa de limba limbaj de asamblare
Tipul de execuție compilate
Aparut in 1999
Autor Tomasz Gryshtar
Extensie de fișier .asm- pentru fișierele de cod, .inc- pentru fișierele de includere
Tip sistem dispărut
Implementări majore asamblator fasm , asamblator fasmarm, [[Fresh_(IDE)]]
A fost influențat inițial TASM , NASM , în cea mai nouă perioadă fasmg (limbaj de programare)
influențat fasmg (limbaj de programare)
Licență Variantă a licenței BSD cu eventual o excepție anti- GPL
Site-ul web flatassembler.net

fasm (prescurtare de la flat assembler) este un tip de limbaj de asamblare.

Istorie

Proiectul a fost început în 1999 de Tomasz Grysztar ( poloneză: Tomasz Grysztar ).

Principii

Fasm tinde să folosească cel mai mic set posibil de directive de preprocesor, de exemplu. într-un set predefinit de directive nu este permisă introducerea de noi directive, a căror funcționalitate poate fi realizată printr-un set existent de directive.

Sintaxă

Spațierea dintre caractere a limbii

Orientarea către o gamă largă de sisteme de operare (nu toate acceptă caractere multibyte) limitează paleta de caractere valide utilizate în textele sursă la variații de un singur octet.

Sub abstracția „caracter” un caracter este perceput cu referire la un anumit cod ASCII, și nu la un anumit stil.

Grupuri separate pot fi distinse în paleta de simboluri:

Textul original

Textul sursă este o secvență de rânduri, acestea sunt colectate din rândurile fișierului principal, de la rândurile fișierelor incluse la cel principal, de la rândurile fișierelor incluse la fișierele incluse anterior etc.

Textul oricărui fișier principal sau inclus este de obicei reprezentat de întregul conținut al acelor fișiere, dar poate fi, de asemenea, forțat să se termine cu primul caracter întâlnit cu un cod ASCII de 0, în timp ce caracterul de sfârșit de text în sine nu este parte a textului, astfel încât acest caracter nu poate apărea în textul sursă.

Fiecare linie de text sursă poate fi goală sau poate conține text de instrucțiuni și/sau text de comentariu.

Textul comentariului

Singurul tip de comentariu predefinit este pe o singură linie, fiecare astfel de comentariu începe cu punct și virgulă „;” și se termină cu o întrerupere de linie.

Textul instrucțiunii

Fiecare instrucțiune începe pe o linie nouă și umple tot spațiul de pe acea linie care nu este ocupat de un comentariu. De asemenea, nicio instrucțiune nu se poate încheia cu un caracter backslash „\” (fără a lua în considerare spațiile și tabulatorii după el), dacă acest caracter este ultimul din spațiul liniei ocupate de textul instrucțiunii, atunci în locul său ( se pune un spațiu și apoi) conținutul următorului este atașat la liniile de instrucțiuni și așa mai departe cu un nivel nelimitat de imbricare.

Textul fiecărei instrucțiuni este neapărat tokenizat (parsat în elemente), pentru nevoile interne ale compilatorului, un caracter cu cod ASCII 26 este implicat în procesul acestei parsări, deci nu poate fi folosit direct în textul instrucțiunii.

La nivel de instrucție, puteți crea iluzia unui comentariu cu mai multe rânduri. Dar natura unui astfel de comentariu va fi moștenită din instrucțiuni, textul acestuia va fi analizat în tipuri și, prin urmare, utilizarea unui caracter cu codul ASCII 26 în interiorul unui astfel de comentariu va fi interzisă.

Jetoane

Corpul oricărei instrucțiuni este o secvență de elemente (tokens), fiecare dintre acestea putând aparține unuia dintre trei tipuri diferite: 1 - un caracter independent, 2 - un simbol continuu și 3 - un șir între ghilimele.

Primul tip de jeton este un element cu un singur caracter și este perceput în textul de instrucțiuni ca un caracter independent, indiferent dacă este separat de textul elementelor învecinate sau este îmbinat cu acestea. Paleta de elemente cu un singur caracter nu este numeroasă: „+-*/=<>()[]{}:,|&~#`” este un subset de caractere speciale.

Al doilea tip de jeton este un element cu mai multe caractere, a cărui succesiune de caractere în textul de instrucțiuni începe cu un alt caracter decât ghilimele („„” dublu și „’”), este realizat împreună și nu include caractere independente .

Al treilea tip de jeton este, de asemenea, un element cu mai multe caractere, dar succesiunea de caractere a cărora în textul de instrucțiuni începe cu un caracter ghilimeleu (nu contează dublu „"" și simplu "'") și nu se termină decât în ​​același timp. caracterul citat este întâlnit în șir, chiar și caracterul punct și virgulă „;” atunci când este întâlnit într-o astfel de secvență, nu deschide niciun comentariu, ci pur și simplu devine un caracter al acestei secvențe. Dacă un caracter din același citat apare împreună după citatul final, atunci 1 caracter al acestui citat este inclus în secvență și secvența în sine continuă până la următorul caracter ghilimeleu, ghilimelele de deschidere și de închidere nu devin parte a elementului, ele servesc doar ca indicator pentru tastarea acestuia.

Notă : care caractere nu pot deveni parte dintr-un șir între ghilimele:

Link -uri