FASM

FASM
Pojawienie się

1999

Twórca

Tomasz Grysztar

Licencja

2 klauzulowa Licencja BSD z dodatkiem Copyleftu

Platforma sprzętowa

x86, x64, ARM

Platforma systemowa

wieloplatformowy

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

  1. a b Dokumentacja online flat asemblera Programmer’s Manual (2.1).
  2. FASMARM.

Linki zewnętrzne

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.