FASM

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
FASM
Pojawienie się 1999
Aktualna wersja stabilna 1.71.21 / 27 maja 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

  1. flat assembler (ang.). [dostęp 2014-06-07].
  2. 2,0 2,1 Dokumentacja online flat asemblera Programmer's Manual (2.1)
  3. FASMARM

Linki zewnętrzne[edytuj | edytuj kod]