FASM
| FASM | |
| Pojawienie się | 1999 |
| Aktualna wersja stabilna | 1.71.22 / 8 października 2014[1] |
| Twórca | Tomasz Grysztar |
| Licencja | 2 klauzulowa Licencja BSD z dodatkiem Copyleft'u |
| Platforma sprzętowa | x86, x64, ARM |
| Platforma systemowa | wieloplatformowy |
| http://flatassembler.net/ | |
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 o licencję 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
- ↑ flat assembler (ang.). [dostęp 2014-11-14].
- ↑ 2,0 2,1 Dokumentacja online flat asemblera Programmer's Manual (2.1)
- ↑ FASMARM
Linki zewnętrzne[edytuj | edytuj kod]
|
||||||||||||||||||||||||||||||||||||||||||||||||||