Opkód

(Opcode szócikkből átirányítva)

Az opkód operációkód, azaz műveleti kód, vagy műveleti jelkód, utasításkészletek leírásában műveleti jelrész. A CPU által beolvasott bináris szám, amit végrehajtható utasítás kódjaként értelmez.

Architektúránként eltérő értékei és méretei vannak.

Az opkódokból összeálló programot ebben a formában „gépi kódnak” is nevezzük, mert a CPU (a „gép”) számára közvetlenül érthető. Elvileg ebben a formában bevihető lenne a programozó számára, de ehhez minden opkód számértékét és egyéb információkat fejből kellene tudni, ami nagyon bonyolult lenne (régebben azonban valóban így történt a dolog, igazi mérnöki pulton pötyögték be a programokat „igazi programozók”). Ezért találták ki a programozási nyelveket. „Legegyszerűbb” talán az assembly, ahol az opkódok számértéke helyett egyezményes rövidítéseket, ún. mnemonikokat használunk, de gyakorlatilag majdnem 1:1 leképezés van a gépi kód és az assembly forrás között.

AssemblySzerkesztés

Az assembly nyelv, vagy csak assembly, egy alacsony szintű programozási nyelv, mely mnemonikokat (programozó vagy ember által értelmezhető, könnyen megjegyezhető utasításjelöléseket), utasításokat és operandusokat használ, hogy reprezentálja a gépi kódot. Ezzel javítható az olvashatóság, mialatt még mindig precíz kontrollt biztosít a gépi utasításkészlet felett. A legtöbb programozási munkát ma jelenleg magas szintű programozási nyelven végzik,[1][2] melyek tipikusan könnyebben olvashatók és írhatók. Ezeket a nyelveket le kell fordítani gépi kódra, vagy keresztül kell futtatni más, már lefordított programon.[3]

Szoftveres utasításkészletekSzerkesztés

Opkódoknak nevezzük azokat a bájtkódokat és más reprezentációkat, amiket hardvereszköz helyett szoftveres értelmező olvas be. Ezek a szoftveres utasításkészletek általában némileg magasabb szintű adattípusokat és műveleteket használnak hardveres rokonaiknál, de hasonló célok mentén tervezik őket. Példa erre a Java programozási nyelv JVM virtuális gépében használt Java bájtkód, a GNU Emacs lefordított LISP kódjának bájtkódja, a .NET Common Intermediate Language (CIL) és még sok hasonló.[4] Opkódnak nevezik a DNS-ben alkalmazott utasításkódokat is.

JegyzetekSzerkesztés

  1. TIOBE Software Popularity Index
  2. Archivált másolat. [2015. április 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. március 24.)
  3. Introduction to Assembly Language
  4. Bytecode definition