Strojový kód: Porovnání verzí
Smazaný obsah Přidaný obsah
m Editace uživatele 91.227.7.99 (diskuse) vráceny do předchozího stavu, jehož autorem je Paul E |
m Typografie |
||
Řádek 3:
Instrukce jsou uloženy v [[operační paměť|paměti]] jako sekvence [[bit]]ů, tedy jako čísla. 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 několik operandů (třeba i čtyři operandy), existují ovšem i instrukce bez operandů (nebo s operandy implicitními, tedy vždy stejnými, bez zvláštního bitového pole v kódu instrukce).
Pro převod instrukcí ze symbolického zápisu do strojového kódu se používá sada jednoduchých překladových nástrojů, zpravidla jde o [[assembler]]
== Instrukční pole ==
Řádek 13:
=== Operandy ===
Operand instrukce je jejím parametrem. Jestliže operační kód říká ''co'' se bude provádět, operandy definují ''s čím'', s jakými daty. V bitových polích vyhrazených pro operandy (neboli parametry) instrukce může být zakódována:
* konstanta
* registr
* adresa určená konstantou
* adresa určená registrem
* adresa určená kombinací registrů a konstant
=== Šířka instrukčního pole ===
Řádek 35:
=== Instrukční sady typu CISC ===
Zkratka [[CISC]]
=== Instrukční sady typu RISC ===
Zkratka [[RISC]]
=== Procesory s RISCovým jádrem ===
Řádek 65:
Příkladem instrukce ze sady [[IA-32|i386]] může být např. instrukce <code>int 21h</code>. Int znamená [[Přerušení|interrupt]] a 21h (číslo 21 v šestnáctkové soustavě) je operand zadaný konstantou. Strojový kód této instrukce v [[operační paměť|paměti]] je 11001101 00100001 (posloupnost dvou [[byte|bytů]], které můžeme zapsat šestnáctkově jako 0CDh 21h).
Příkladem nejdelší instrukce i386 (ve skutečnosti tak dlouhé, že nefunguje
F0 6626 67C7 845E 7856 3412 F0DE BC9A
Nejkratší instrukcí je třeba <code>nop</code> (nic nedělej) s kódem 0x90. Ve skutečnosti se ale jedná o instrukci <code>xchg ax,ax</code> (vyměň registr ax s registrem ax, tedy skutečně instrukce bez efektu), rozdělitelnou na kód (10010) a registrový operand (000 znamená ax, resp. eax v 32bitovém módu).
|