Assembler a strojový kód

    Strojový kód je jediný programovací jazyk zrozumiteľný počítaču, je doslova "zadrôtovaný" do procesora. Všetky vyššie programovacie jazyky sú v skutočnosti len programom v strojovom kóde simulujúcim tieto jazyky. Strojový kód je však v pamäti i procesore zapísaný bajtovo či bitovo, vo forme jednotiek a núl. Zapisovanie programu ako sledu čísel by však bolo príliš zložité, preto programátori využívajú (obdobne ako v prípade vyšších programovacích jazykov) slovný zápis inštrukcií, takzvaný assembler. (V tomto dokumente používam kvôli jednoduchšiemu pochopeniu slovo assembler i na miestach, kde by bolo vhodnejšie použiť výraz strojový kód.) Každá inštrukcia má teda význam, zápis v assembleri a číselný zápis v strojovom kóde, napríklad:

DEC BX
01001011b=4Bh=75
zmenšenie hodnoty registra BX o 1

    Na konverziu assembleru do strojového kódu možno využiť viacero programov. Pre naše potreby som vybral Netwide Assembler (NASM). Jeho funkčnú verziu (spolu s pohodlným editorom) si môžete stiahnuť tu [664 240 bajtov]. (V súbore nasmide.ini treba potom nastaviť presnú cestu k nasm16.exe.) Program pre NASM napíšeme podľa schémy:

[BITS 16]
[ORG 0x0100]

[SECTION .text]

    Tu treba vpísať program v assembleri
MOV AX,4C00h
INT 21h
;ukončí program

    Program spustíme klávesovou skratkou CTRL+F9. Keď je všetko v poriadku, program sa vykoná.

    Ak chceme využiť vkladaný assembler v jazyku Turbo Pascal, spravíme to podľa tejto schémy:

asm
    Tu treba vpísať program v assembleri
end;

    Ak chceme použiť návestie alebo premennú, skrátka od ľavého okraja napíšeme jej názov a môžeme sa na ňu odvolávať:

zniz_bx:  DEC BX
premenna  DB 0