FASM
Pojawienie się | |
---|---|
Twórca | |
Licencja |
2 klauzulowa Licencja BSD z dodatkiem Copyleftu |
Platforma sprzętowa | |
Platforma systemowa | |
Strona internetowa |
FASM (od ang. flat assembler, „płaski asembler”) – szybki i wydajny asembler dla systemów: DOS, Windows oraz zgodnych z Uniksem takich jak Linux (natywna wersja) czy systemy z rodziny BSD (wersja wykorzystująca standardową bibliotekę libc).
Został opracowany przez Tomasza Grysztara, jest programem darmowym i wolnym, opartym na licencji 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ów 8080-80486/Pentium wraz z rozszerzeniami MMX, 3DNow!, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, AVX2 oraz XOP[1]. Ponadto rozpoznaje instrukcje ze zbiorów VMX, SVM, SMX, XSAVE, RDRAND, FSGSBASE, INVPCID, HLE, RTM[1]. Generuje kod w architekturze 16-bitowej, 32-bitowej i 64-bitowej (zarówno AMD64 i EM64T).
Potrafi generować kod maszynowy, jak również kod w formatach MZ, PE, COFF i ELF. 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 procesowi asemblacji.
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ż jego port na architekturę ARM[2], a także jest wykorzystywany przy tworzeniu systemu operacyjnego MenuetOS, pisanego wyłącznie w asemblerze.
Przypisy
[edytuj | edytuj kod]- ↑ a b Dokumentacja online flat asemblera Programmer’s Manual (2.1).
- ↑ FASMARM.