Přeskočit na obsah

Opkód

Z Wikipedie, otevřené encyklopedie

Opkód (z anglického opcode jako kalková zkratka z operační kód) je v rámci strojového kódu ta část strojové instrukce, která určuje prováděnou operaci, tedy ta část, která neurčuje operandy. Opkódy jednotlivých instrukcí jsou specifické pro danou instrukční sadu. Podobně jako na fyzických procesorech přitom fungují opkódy také v bajtkódu na virtuálních strojích.

V jazyce symbolických adres odpovídají opkódům krátká mnemotechnická slova typicky vzniklá jako zkratky z anglického popisu funkce dané instrukce.

Příklady

[editovat | editovat zdroj]

Instrukce pro sčítání mívá zkratku add (z anglického addition) či jí podobnou. Na platformě x86 je jejím opkódem bajt o hodnotě 0xD5 (zapsáno v šestnáctkové soustavě).

Nulová operace mívá nejčastěji zkratku nop z anglického no operation. Na platformě x86 je jejím opkódem bajt o hodnotě 0x80. Na platformě Z80 je jejím opkódem 0x00. Ani v jednom případě nemá instrukce žádné parametry, tedy opkód je její jediná část. Na platformě RISC-V instrukce nop nemá vlastní opkód, neboť je tato zkratka jen překládána na addi x0, x0, 0, tedy sčítací instrukci, která má za úkol přičíst nulu do speciálního virtuálního registru, jehož hodnota je vždy rovna nule – tedy ve skutečnosti neudělá nic.

Platforma ARM má proměnlivou délku opkódu 4-8 bitů (přičemž chování některých instrukcí je ještě určeno dalšími doplňujícími bity, které nejsou považovány za operandy).[1]

Nedefinované opkódy

[editovat | editovat zdroj]

Jednotlivé instrukce mají své opkódy, tedy číselné hodnoty, ale zejména v historických instrukčních sadách byly některé číselné hodnoty, které nebyly opkódem žádné instrukce. Pokud procesor narazí při zpracování na takový opkód, dochází k výjimce, obvykle ve formě přerušení neplatný opkód.

  1. TIŠNOVSKÝ, Pavel. Pohled programátora na mikroprocesory ARM. Root.cz [online]. 2012-03-13. Dostupné online. ISSN 1212-8309. 

Externí odkazy

[editovat | editovat zdroj]
  • Slovníkové heslo opkód ve Wikislovníku