Netwide Assembler: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
...
Vegetator (diskusia | príspevky)
Bez shrnutí editace
Riadok 8:
| posledné aktuálna dáta = {{6.6.2011}}
| operačný systém = [[Microsoft Windows]], Unixové OS, [[OS/2]], [[Mac OS]], [[DOS]]
| typ = [[x86 assembly language|x86]] [[assembler]]
| jazyk = [[Anglický jazyk]]
| licencia = 2-klauzula [[BSD licencia]]
Riadok 16:
'''Netwide Assembler''' ('''NASM''') je multiplatformový kompilátor programovacieho jazyka assembler s podporou [[softvérová architektúra|architektúry]] [[x86]] a [[x84-64]], a s podporou mnohých výstupných formátov. NASM podporuje všetky inštrukčné sady vrátane nedokumentovaných a vrátane špecifických inštrukcií niektorých procesorov. Okrem vlastného prekladača má aj veľmi obmedzený dissassembler s názvom ndisasm.
 
Výhodou NASM je možnosť spojiť ho s inými programovacími jazykmi na mnohých platformách a pod mnohými kompilátormi, bez toho aby ste museli svoje assemblerovské kódy prepisovať z dôvodu zmeny syntaxe. Podporuje napríklad Linuxové formáty [[ELF]], [[a.out]], ďalej WindowsovskéWindowsové formáty [[COFF]] (používa GCC kompilátor a DJGPP kompilátor), win32 (Microsoftský formát používaný MS Visual Studiom pre 32 bitové prostredie), win64 (formát MS Visual Studia pre 64 bitové prostredie), DOSovské formáty objDOS (pre MS-DOS programy), a mnohé ďalšie.
 
NASM je širenýšírený pod 2-klauzulou [[BSD licencia|BSD]] licencie.
 
Priaznivým dôsledkom toho, že NASM je písaný kompletne v jazyku C, je, že je možné ho použiť a preložiť prakticky na ľubovolnú platformu. Je možné ho teda používať v [[MS-DOS|DOSe]], [[OS/2]], [[Microsoft Windows|Windows]], [[Linux]]e aj [[BSD]]. Na ďalšie platformy ho možno ľahko preložiť. Pracuje dokonca aj na platformách s inou architektúrou, než je [[x86]] a [[x84-64]], čím umožňuje aj krížový preklad na rozdiel od napríklad [[FASM]], ktorý je písaný v assembleri, a krížový preklad neumožňuje, rovnako tak je omnoho ťažšie portovať ho na iné platformy.
 
Používa tradičný [[Intel]] syntax, na rozdiel od napríklad [[GNU Assembler]]a používajúceho [[AT&T]] syntax (ktorý však na požiadanie tiež vie Intel syntax). Hlavným rozdielom medzi týmito syntaxami je poradie operandov inštrukcie a spôsob zápisu dereferencie. Na rozdiel od [[GNU Assembler]]a je určený pre programovanie, zatiaľčozatiaľ čo [[GNU Assembler]] bol koncipovaný len pre strojový preklad v pozadí GCC a nepočítalo sa s priamym používaním.
 
Jeho súčasťou je pomerne silný makrojazyk optimalizovaný pre potreby assemblera (zatiaľčozatiaľ čo GNU Assembler makrojazyk nemá a maximálne umožňuje použiť len preprocesor C). Makrojazyk NASM je však trochu komplikovaný a nie vždy celkom konzistentný. Jeho makrojazyk nie je tak silný, ako napríklad makrojazyk [[Microsoft Assembler|MASM]] – ten však podporuje len MS Visual Studio a Windows.
 
NASM tiež má možnosť generovať do výsledného skompilovaného súboru aj ladiace informácie, ale táto možnosť nie je ešte v NASM plne implementovaná. V súčasnosti podporuje túto možnosť len pri elf formáte a obj formáte pre Borland prekladače.