FASM - FASM
|
FASMD-MS-DOS-versjon med IDE
| |
| Utvikler (er) | Tomasz Grysztar |
|---|---|
| Første utgivelse | Mars 2000 |
| Stabil utgivelse | 1.73.27 / 27. januar 2021
|
| 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 |
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:
- DexOS - av Craig Bamford og DexOS -samfunnet
- MenuetOS- 32- og 64-biters GUI-operativsystemer av Ville Turijanmaa
- KolibriOS
Kompilatorer som bruker FASM som en backend:
Se også
Referanser
Eksterne linker
- FASM -prosjekt: Offisielt nettsted
- FASMLIB 0.8.0-bærbar 32-biters x86 asm lib for FASM/MASM/YASM/NASM/GASM
- FASMARM - FASM for ARM -prosessorer, v1.27, 9. juni 2012
- Den friske IDE