FASM
|
||
Pojawienie się | 1999 | |
Aktualna wersja stabilna | 1.71.22 / 8 października 2014; 3 lata temu[1] | |
Twórca | Tomasz Grysztar | |
Licencja | 2 klauzulowa Licencja BSD z dodatkiem Copyleftu | |
Platforma sprzętowa | x86, x64, ARM | |
Platforma systemowa | wieloplatformowy | |
Strona internetowa |
FASM – flat assembler – szybki i wydajny asembler dla systemów: DOS, Windows oraz kompatybilnych 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[2]. Ponadto rozpoznaje instrukcje ze zbiorów VMX, SVM, SMX, XSAVE, RDRAND, FSGSBASE, INVPCID, HLE, RTM[2]. Generuje kod w architekturze 16-bitowej, 32-bitowej i 64-bitowej (zarówno AMD64 i EM64T).
Potrafi generować kod binarny, 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 linii komend) w myśl zasady: ten sam plik – ten sam wynik. Rozmiar kodu wynikowego jest optymalizowany dzięki wieloprzebiegowemu procesowi kompilacji.
FASM jest cały czas aktywnie rozwijany i posiada 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[3], a także jest wykorzystywany przy tworzeniu systemu operacyjnego MenuetOS, pisanego wyłącznie w asemblerze.
Przypisy[edytuj | edytuj kod]
- ↑ flat assembler (ang.). [dostęp 2014-11-14].
- ↑ a b Dokumentacja online flat asemblera Programmer’s Manual (2.1).
- ↑ FASMARM.
Linki zewnętrzne[edytuj | edytuj kod]
|