| Pojawienie się | |
|---|---|
| Twórca | |
| Licencja | 2 klauzulowaLicencja BSD z dodatkiemCopyleftu |
| Platforma sprzętowa | |
| Platforma systemowa | |
| Strona internetowa | |
FASM (od ang.flat assembler, „płaski asembler”) – szybki i wydajnyasembler dla systemów:DOS,Windows oraz zgodnych zUniksem takich jakLinux (natywna wersja) czy systemy z rodzinyBSD (wersja wykorzystująca standardową bibliotekęlibc).
Został opracowany przez Tomasza Grysztara, jest programem darmowym i wolnym, opartym nalicencji BSD z zastrzeżeniem, że nie może być zmieniona na inną (np.GNU GPL – formalnie licencja BSD nie stawia takiego wymogu). Obecnie obsługuje wszystkie instrukcje procesorów8080-80486/Pentium wraz z rozszerzeniamiMMX,3DNow!,SSE,SSE2,SSE3,SSSE3,SSE4,AVX,AVX2 orazXOP[1]. Ponadto rozpoznaje instrukcje ze zbiorówVMX,SVM,SMX,XSAVE,RDRAND,FSGSBASE,INVPCID,HLE,RTM[1]. Generuje kod w architekturze16-bitowej,32-bitowej i64-bitowej (zarównoAMD64 iEM64T).
Potrafi generowaćkod maszynowy, jak również kod w formatachMZ, PE,COFF iELF. Zawiera rozbudowany język makroinstrukcji, określający nie tylko budowę kodu, ale także sposób jego generowania (stąd praktyczny brak opcji w wierszu poleceń) w myśl zasady „ten sam plik – ten sam wynik”. Rozmiar kodu wynikowego jest optymalizowany dzięki wieloprzebiegowemu procesowiasemblacji.
FASM jest cały czas aktywnie rozwijany. Ma stosunkowo dużą i aktywną grupę użytkowników, którzy uczestniczą w jego rozwoju oraz wymieniają się wzajemnie doświadczeniem w programowaniu niskopoziomowym. Powstaje również jegoport naarchitekturę ARM[2], a także jest wykorzystywany przy tworzeniu systemu operacyjnegoMenuetOS, pisanego wyłącznie w asemblerze.
| 1GL | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2GL/ Język drugiej generacji/ Asembler | |||||||||||||||
| 3GL / Język trzeciej generacji |
| ||||||||||||||
| 4GL/ Język czwartej generacji/ Język dziedzinowy |
| ||||||||||||||
| 5GL/Logiczne | |||||||||||||||
| Ezoteryczne | |||||||||||||||
| Inne |