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