Netwide Assembler: Rozdiel medzi revíziami

Odobraných 44 bajtov ,  pred 10 rokmi
upravené
(kopa chyb mne sa to opravovat nechce, ked neviem neprekladam)
(upravené)
'''Netwide Assembler''' ('''NASM''') je multiplatformovýmultiplatfomný kompilátor programovacieho jazyka assembler s podporou [[architektúra (informatika)|architektúry]] [[x86]] a [[x84-64]] s podporou mnohých výstupných formátov. NASM podporuje všetky inštrukčné sady vrátanévrátane nedokumentovaných a vrátane špecifických inštrukcií niektorých procesorov. Okrem vlastného prekladača má aj veľmi obmedzenýomedzený dissassembler s názvom ndisasm.
{{na úpravu}}
'''Netwide Assembler''' ('''NASM''') je multiplatformový kompilátor programovacieho jazyka assembler s podporou [[architektúra (informatika)|architektúry]] [[x86]] a [[x84-64]] s podporou mnohých výstupných formátov. NASM podporuje všetky inštrukčné sady vrátané 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 smeste museli svoje assemblerovské kódy prepisovať z dôvodu zmeny syntaxe. Podporuje napríklad Linuxové formáty [[ELF]], [[a.out]], ďalej Windowsovské formáty [[COFF]] (používa GCC kompilátor a DJGPP kompilátor), win32 (Microsoftný formát používaný MS Visual Studiom pre 32 bitové prostredie), win64 (formát MS Visual studiaStudia pre 64 bitové prostredie), DOSovské formáty obj (pre MS-DOS programy), a mnohé ďalšie.
 
NASM je [[Slobodný softvér|free software]] (licencia [[GNU General Public License|GPL]]) program.
NASM je šírený pod BSD licenciou.
 
Priaznivým dôsledkom toho, že NASM je napísanýpísaný kompletne v programovacom jazyku C, je to, že je možné ho možné použiť a preložiť prakticky na ľubovolnejľubovolnú platformeplatformu. Je možné ho taktiežteda použiťpoužívať v [[MS-DOS|DOSe]], [[OS/2]], [[Microsoft Windows|Windows]], [[Linux]]e aj [[BSD]]. Na ďalšíchďalšie platformy ho idemožno ľahko preložiť. Pracuje dokonca iaj na platformách s inou architektúrou, než je [[x86]] a [[x84-64]], čím umožňuje iaj krížový preklad na rozdiel napríklad od napríklad [[FASM]], ktorý je napísanýpísaný v assembleruassembleri, a krížový preklad neumožňuje, rovnako tak je omnoho ťažšie portovať ho na iné platformy.
 
Používa tradičnútradičný [[Intel]] syntax, na rozdiel od napríklad [[GNU Assembler]]ua používajúceho [[AT&T]] syntax (ktorý okrem tohovšak na požiadanie tiež vie Intel syntax). Hlavným rozdielom medzi toutotýmito syntaxousyntaxami je poradie operandov inštrukcie a spôsob zápisu dereferencedereferencie. Na rozdiel od [[GNU Assembler]]ua je určeníurčený pre programovaníprogramovanie, zatiaľ čozatiaľčo [[GNU Assembler]] bol navrhnutýkoncipovaný ibalen 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 assembleruassemblera (zatiaľ čozatiaľčo GNU Assembler makrojazyk nemá a maximálne umožňuje maximálne použiť len preprocesor C). Makrojazyk NASM je narozdiel od nehovšak trochu komplikovaný a nie vždy celkom konzistentníkonzistentný. Jeho makrojazyk nenínie je tak silný, ako napríklad makrojazyk [[Microsoft AssembleruAssembler|MASM]] – ten však podporuje ibalen MS Visual Studio a Windows.
 
NASM tiež má možnosť generovať do výsledného skompilovaného súboru iaj ladiace informácie, ale táto možnosť nie je ešte celkom v NASM plne implementovaná. V súčasnej dobesúčasnosti podporuje túto možnosť len vpri elf formátuformáte a obj formátuformáte pre Borland prekladače.
 
NASM bylbol historicky prvým kompilátorom assembleruassemblera, ktorý ponúkol širokú použiteľnosť spolupráce s mnohými kompilátorykompilátormi, a tiež nezmyselnosťprenositelnosť na mnohýchmnoho platformáchplatforiem. Vzhľadom k výhodám, ktoré ponúka jeho licencia a k výhodám, ktoré vznikli v dôsledku toho, že je napísaný v programovacímprogramovacom jazyku C, sa stal velmiveľmi široko rozšíreným assemblerovským kompilátorkompilátorom v open source svete. TímTým sa stal takétiež široko testovaným a prevereným.
 
;Príklad syntaxe:
<source lang="asm">
mov al,[es:esi] ; Do registru al uloží hodnotu na adrese es:esi
mov eax,label ; Do registru eax sesa uloží offset návestia label
push cs ; SkopírujeSkopírovanie selektorselektoru cs do ds
pop ds
mov eax,[label] ; Do registru eax sa uloží hodnota na offsetuoffsete ds:label, tedyteda 1234h
mov ax,4C00h ; UkončeníUkončenie aplikáciuaplikácie v MS-DOS/Windows
int 21h
label: dd 1234h
</source>
 
== ExterníExterné odkazy ==
* [http://nasm.sourceforge.net/ Stránka projektu]
 
[[Kategória:PrekladačPrekladače]]
[[Kategória:Asemblery|Netwide Assembler]]
 
[[cs:Netwide Assembler]]
Anonymný používateľ