FASM - FASM

FASM
FASM.PNG
FASMD-MS-DOS-versjon med IDE
Utvikler (er) Tomasz Grysztar
Første utgivelse Mars 2000 ; 21 år siden ( 2000-03 )
Stabil utgivelse
1.73.27 / 27. januar 2021 ; 7 måneder siden ( 2021-01-27 )
Oppbevaringssted
Skrevet inn montering
Operativsystem Unix-lignende , Linux , Windows og IDE, MS-DOS og IDE, OpenBSD , etc., MenuetOS , KolibriOS , OctaOS , DexOS og IDE, SkyOS , Solar_OS
Plattform x86 , x86-64
Type Montør
Tillatelse Forenklet BSD med en svak copyleft -klausul
Nettsted flatassembler .net

FASM ( flat assembler ) er en assembler for x86 -prosessorer. Den støtter monteringsspråk i Intel-stil på datamaskinarkitekturen IA-32 og x86-64 . Den krever høy hastighet, størrelsesoptimaliseringer, operativsystem (OS) -portabilitet og makroevner . Det er en assembler på lavt nivå og bruker bevisst svært få kommandolinjealternativer . Det er gratis og åpen kildekode-programvare .

Alle versjoner av FASM kan direkte sende ut noe av følgende: flat "rå" binær (kan også brukes som MS-DOS COM-kjørbar eller SYS-driver), objekter: Executable and Linkable Format (ELF) eller Common Object File Format (COFF) (klassisk eller MS-spesifikk), eller kjørbare filer i enten MZ- , ELF- eller Portable Executable- format (inkludert WDM-drivere, tillater tilpasset MZ DOS-stubbe). Det finnes også en uoffisiell port som er rettet mot ARM -arkitekturen ( FASMARM ).

Historie

Prosjektet ble startet i 1999 av Tomasz Grysztar, alias Privalov , på den tiden en bachelorstudent i matematikk fra Polen . Den ble utgitt offentlig i mars 2000. FASM er fullstendig skrevet på forsamlingsspråk og leveres med full kilde. Det er selvvert og har vært i stand til å montere seg selv siden versjon 0.90 (4. mai 1999).

FASM kjørte opprinnelig i 16-biters flat ekte modus . 32-biters støtte ble lagt til og deretter supplert med valgfri DPMI- støtte. Designet for å være lett å overføre til ethvert operativsystem med flat 32-biters adressering, ble den portet til Windows, deretter Linux.

Design

FASM støtter ikke så mange utsagn på høyt nivå som MASM eller TASM . Den gir syntaksfunksjoner og makroer, som gjør det mulig å tilpasse eller lage manglende setninger. Dens minneadresserende syntaks ligner TASMs ideelle modus og NASM . Braketter brukes til å betegne minneoperander som i begge montører, men størrelsen er plassert utenfor brakettene, som i NASM.

FASM er en multi-pass montør. Det gjør omfattende kodestørrelsesoptimalisering og tillater ubegrenset fremoverreferanse. En uvanlig FASM-konstruksjon definerer prosedyrer bare hvis de brukes et sted i koden, noe som på de fleste språk gjøres per objekt av linkeren .

FASM er basert på "samme kilde, samme utgang" -prinsippet: innholdet i den resulterende filen påvirkes ikke av kommandolinjen. En slik tilnærming sparer FASM -kilder fra å sette sammen problemer som ofte finnes i mange monteringsprosjekter. På den annen side gjør det det vanskeligere å vedlikeholde et prosjekt som består av flere separat kompilerte kildefiler eller prosjekter med blandet språk. Det finnes imidlertid en Win32 -innpakning kalt FA, som demper dette problemet. FASM -prosjekter kan bygges fra en kildefil direkte til en kjørbar fil uten et koblingstrinn.

IDE

Fresh , et internettsamfunnstøttet prosjekt startet av John Found, er et integrert utviklingsmiljø for FASM. Fresh støtter for tiden Microsoft Windows og Linux.

Bruk

Operativsystemer skrevet med FASM:

Kompilatorer som bruker FASM som en backend:

Se også

Referanser

Eksterne linker