Strojový kód je posloupnost instrukcí procesoru vyjádřená čísly.
Každý typ procesoru je při návrhu vybaven instrukční sadou, která obsahuje instrukce pro manipulaci s pamětí a řízení toku zpracování instrukcí. Instrukční sada dvou procesorů se může částečně překrývat. Pokud instrukční sada procesoru A obsahuje celou instrukční sadu jiného procesoru B, říkáme, že procesor A je (zpětně) kompatibilní s procesorem B. V některých případech se při posuzování kompatibility uvažují pouze aplikační instrukce (nikoliv speciální instrukce určené pouze pro operační systém).
Některé procesory mohou mít kromě externí instrukční sady ještě odlišnou interní instrukční sadu. To je příklad procesorů Intel Pentium Pro a vyšších a AMD K5 a vyšších, kteří se kombinací CISCové externí a RISCové interní sady vyrovnávají s nutností zvýšit rychlost a přitom udržet kompatibilitu s instrukční sadou i386.
Instrukce se zapisují jako sekvence bitů, tedy jako číslo. Nejčastěji se instrukce skládá z bitového pole určující kód instrukce a bitových polí popisující operandy. Instrukce může mít třeba čtyři operandy, existují ovšem i instrukce bez operandů (nebo s operandy implicitními, tedy vždy stejnými, nezapsanými do kódu).
Operandem může být konstanta neboli přímá hodnota (bitové pole je přímo hodnota operandu), registr nebo adresa v paměti. Většina procesorů má hned několik způsobů jak zadat adresu v paměti, za základní lze považovat zadání hodnoty adresy nebo zadání čísla registru (adresou je pak hodnota registru). V instrukční sadě i386 lze adresu zadat i jako součet (bázového) registru, indexovaného registru vynásobeného jednou z konstant 1,2,4 a konstanty.
Programování přímo ve strojovém kódu je značně pracné a už se používá spíše výjimečně. Nevýhodou je používání číselných kódů, ale především nutnost přepočítávat adresy skoků po každém vložení nebo ubrání instrukce.
Programátoři proto pracují ve vyšších programovacích jazycích, nebo alespoň v jazyku symbolických adres (assembler), které jsou specializovanými programy (překladači) překládány do strojového kódu příslušného procesoru.
Programovací jazyky | Procesory
Llenguatge de màquina | Maskinkode | Maschinensprache | Machine code | Lenguaje de máquina | Masinkood | Konekieli | Langage machine | שפת מכונה | Gépi kód | Linguaggio macchina | 機械語 | 기계어 | Machinetaal | Maskinkode | Kod maszynowy | Código de máquina | Машинный язык | Machine code | Strojový kód | Strojna koda | Maskinkod | Машинний код | Ngôn ngữ máy | 机器语言
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Strojový kód".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world