Strojna koda

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje
Zaslon strojnega jezika v enoploščnem 16-bitnem mikroprocesorju W65C816S, ki prikazuje razbiranje kode, kot tudi procesorski register in pomnilniške izpise.

Strôjna kóda, strôjni jêzik ali strôjno besedílo prográma (angleško machine code ali machine language) je besedilo oziroma koda v izvršljivih datotekah, ki so jih iz izvornega besedila ustvarili prevajalniki ali zbirniki. Strojno besedilo programa je sestavljeno iz zaporedij izvršljivih strojnih ukazov, ki jih na osebnih računalnikih izvaja centralna procesna enota.

Vsak procesorski sistem ima svojo arhitekturno zasnovo (platformo). To pomeni, da je strojni jezik zelo drugačen med različnimi procesorji (vendar enak za tiste na enaki zasnovi), tako da je treba za vsako platformo uporabiti drugačen prevajalnik (compiler), da prevede izvorno kodo v strojno.

Čeprav najbolj odvisna od procesorske zasnove, je platforma skupek značilnosti vseh delov računalnika. V to šteje tudi operacijski sistem in druga pomembna programska oprema (software) ali strojna oprema (hardware).

Centralna procesna enota neposredno rezume objektno kodo, vendar se za uspešno izvajanje na danem operacijskem sistemu potrebuje tudi določen izvršni zapis (executable format), ki je določen z vmesnikom ABI (Application Binary Interface) operacijskega sistema. V izvršnih datotekah se tako nahaja strojna koda določenega izvršnega zapisa, kar je osrednji razlog za neprenosljivost računalniških programov med posameznimi operacijskimi sistemi. GNU/Linux in družina BSD uporabljajo npr. izvršni zapis ELF (Executable and Linkable Format), Mac uporablja Mach-o, medtem ko MS Windows PE (Portable and Executable Format).

Izvršna datoteka s strojno kodo je lahko tudi brez izvršnega zapisa. Datoteka, ki jo je moč izvajati brez operacijskega sistema na centralni procesni enoti, se imenuje ploščata izvršna datoteka (flat binary file).

Strojno kodo se pogosto označuje kot prvo generacijo programskih jezikov.