FASM - FASM
FASMD - verze pro DOS s IDE | |
Vývojáři | Tomasz Grysztar |
---|---|
První vydání | Březen 2000 |
Stabilní uvolnění | 1.73.25 / 20. srpna 2020 |
Operační systém | Unixový, Linux, Okna a IDE, DOS a IDE, OpenBSD, atd., MenuetOS, KolibriOS, OctaOS, DexOS a IDE, SkyOS, Solar_OS |
Plošina | x86, x86-64 |
Typ | Assembler |
Licence | Zjednodušená BSD s slabý copyleft doložka |
webová stránka | flatassembler |
FASM (plochý assembler) je assembler pro x86 procesory. Podporuje to Intel montážní jazyk na IA-32 a x86-64 počítačové architektury. Vyžaduje vysokou rychlost, optimalizaci velikosti, operační systém (OS) přenositelnost a makro schopnosti.[1][2] Je to nízká úroveň assembler[2] a záměrně používá velmi málo příkazový řádek možnosti. to je bezplatný open source software.
Všechny verze FASM mohou přímo vydávat kteroukoli z následujících možností: plochý "raw" binární (použitelné také jako DOS Spustitelný soubor COM nebo ovladač SYS), objekty: Spustitelný a propojitelný formát (ELF) nebo Společný formát souboru objektu (COFF) (klasický nebo specifický pro MS) nebo spustitelné soubory v obou MZ, ELF nebo Přenosný spustitelný soubor (PE) formát (včetně ovladačů WDM, umožňuje vlastní stub MZ DOS). Neoficiální port zaměřený na ARM architektura (FASMARM ) také existuje.[3]
Dějiny
Projekt zahájil v roce 1999 Tomasz Grysztar, a.k.a. Privalov, v té době vysokoškolský student matematiky z Polsko. To bylo propuštěno veřejně v březnu 2000.[4][5] FASM je zcela napsán montážní jazyk a je dodáván s plným zdrojem. to je vlastní hosting a je schopen sestavit se od verze 0.90 (4. května 1999).
FASM původně fungoval pouze v 16bitové verzi plochý reálný režim. Byla přidána 32bitová podpora a poté doplněna volitelnou DPMI Podpěra, podpora. Byl napsán způsobem, který usnadňoval portování na jakýkoli operační systém, který umožňoval ploché 32bitové adresování; bylo přeneseno na Windows a poté na Linux.
Design
FASM tolik nepodporuje vysoká úroveň prohlášení jako MASM nebo TASM.[2] Poskytuje funkce syntaxe a makra, která umožňují přizpůsobit nebo vytvořit chybějící příkazy.[4] Jeho syntaxe adresování paměti je podobná ideálnímu režimu TASM a NASM. Závorky se používají k označení paměťových operandů jako v obou assemblerech, ale jejich velikost je umístěna mimo závorky, jako v NASM.[6]
FASM je víceprůchodový asembler. Provádí rozsáhlou optimalizaci velikosti kódu a umožňuje neomezené dopředné odkazování.[2][6] Neobvyklý konstrukt FASM definuje procedury pouze v případě, že jsou použity někde v kódu, něco, co ve většině jazyků provádí každý objekt linker.
FASM je založen na principu „stejný zdroj, stejný výstup“: obsah výsledného souboru není ovlivněn příkazovým řádkem.[6] Takový přístup šetří zdroje FASM před kompilací problémů, které se často vyskytují v mnoha projektech montáže. Na druhou stranu to ztěžuje údržbu projektu, který se skládá z více samostatně kompilovaných zdrojových souborů nebo projektů ve více jazycích. Existuje však Win32 obal nazývá FA, což tento problém zmírňuje.[7] Projekty FASM lze zabudovat z jednoho zdrojového souboru přímo do spustitelného souboru bez fáze propojení.[2]
IDE
Čerstvý, projekt podporovaný internetovou komunitou, který zahájil John Found, je integrované vývojové prostředí pro FASM.[8] Fresh aktuálně podporuje Microsoft Windows a Linux.[8]
Použití
Operační systémy napsané pomocí FASM:
- DexOS[9] - Craig Bamford a komunita DexOS
- MenuetOS[10] - 32- a 64-bit Operační systémy GUI od Ville Turijanmaa
- KolibriOS
Překladače, které používají FASM jako backend:
Viz také
Reference
- ^ Tomasz Grysztar. "Programátorská příručka pro plochého asemblera". Citováno 2008-05-12.
- ^ A b C d E Randall Hyde. „Který Assembler je nejlepší?“. Citováno 2008-05-18.
- ^ „FASMARM“. 2008-03-20. Citováno 2008-05-12.
- ^ A b "Rozhovor s Privalovem, autorem FASM". 12. 8. 2004. Archivovány od originál dne 08.10.2007. Citováno 2008-05-12.
- ^ Tomasz Grysztar (2000-03-15). "plochý assembler". Citováno 2008-05-19.
- ^ A b C Tomasz Grysztar. „Principy plochého asembleru“. Citováno 2008-05-12.
- ^ Tomasz Grysztar. "FA - rozšíření příkazového řádku pro fasm". Citováno 2012-05-11.
- ^ A b „Fresh ID project“.
- ^ „Časté dotazy k DexOS“. Archivovány od originál dne 03.03.2016. Citováno 2008-05-18.
- ^ „MenuetOS“. Citováno 2008-05-18.
externí odkazy
- Projekt FASM: Oficiální webové stránky
- FASMLIB 0.8.0 - přenosný 32bitový x86 asm lib pro FASM / MASM / YASM / NASM / GASM
- FASMARM - FASM pro procesory ARM, v1.27, 9. června 2012
- Nové IDE