Strojový kód

Strojový kód alebo tiež strojový jazyk je súbor inštrukcií priamo vykonateľný procesorom počítača. Strojový kód vzniká prekladom programu (tzv. kompilácia) napísaného v programovacom jazyku a jeho funkcia je ekvivalentná s funkciou programu.

Inštrukcie strojového kódu 
"Slová" strojového kódu sú reťazce bitov, ktoré zodpovedajú inštrukciám (elementárnym príkazom), ktoré vie počítač vykonať.

Hoci každý procesor má vlastnú inštrukčnú sadu (strojový kód), často si bývajú tieto sady navzájom podobné alebo sú podmnožinou tejto sady. Napríklad ak procesor A rozoznáva všetky inštrukcie procesora B, hovorí sa že A je kompatibilný s B. Avšak B už nemusí byť kompatibilné s A pretože nemusí rozoznať každú inštrukciu ktorú obsahuje procesor A.

V niektorých strojových jazykoch má každá inštrukcia rovnaký počet bitov, zatiaľ čo v iných typoch sa môže počet bitov inštrukciu od inštrukcie líšiť. Niektoré inštrukcie vyžadujú operandy, ktoré upresňujú ako sa inštrukcia má vykonať, prípadne s akými dátami má pracovať (napr. inštrukcia ADD ax, bx by sčítala obsahy registrov ax a bx - samozrejme časti tejto inštrukcie sú kódované binárne tak, aby im CPU priamo rozumel).

Programy 
Program je sekvenciou inštrukcií strojového jazyka, ktoré sú uložené v pamäti počitača. Procesor potom jednotlivé inštrukcie sekvenčne načíta, dekóduje a vykoná. Inštrukcie strojového kódu sa často zapisujú pomocou jazyka symbolických inštrukcií, ktorý je pre ľudí ľahšie čitateľný ako binárne kódované inštrukcie strojového jazyka.

Jazyk symbolických inštrukcií 
Keďže strojový kód v binárnej podobe je pre človeka prakticky nečitateľný, pre účely programovania na najnižšej úrovni je vytvorený tzv. jazyk symbolických inštrukcií (tiež jazyk symbolických adries), angl. assembly language, v praxi tiež assembler (aj keď pôvodne assembler znamenal prekladač pre tento jazyk), skrátene asm. V tomto jazyku zodpovedá každému „slovu“ strojového kódu tzv. mnemonický kód (napr. ADD pre sčítanie, JMP pre skok (angl. addition a jump); niekedy ide aj o pomerne komplikovanu skratku z viacerych slov, napr. DJNZB - Decrement and Jump If Not Zero (Byte operation)), obvykle len niekoľko písmen dlhý. Každá inštrukcia sa zväčša zapisuje do samostatného riadku.

Takýto programovací jazyk je veľmi jednoduchý a stále pomerne ťažko použiteľný, avšak už obsahuje aj určité pomôcky, napr. pre určenie skokov a volaní podprogramov je možné použiť symbolické adresy (návestia), nie je potrebné zadávať priamo číselne „vzdialenosť“ skoku.

Pre každý druh procesora sa zväčša používa iná sada mnemonických kódov.

Pozri aj 
 Turingov stroj
 CISC
 RISC
 Assembler
 Programovací jazyk

Programovanie