Ugrás a tartalomhoz

Opkód

A Wikipédiából, a szabad enciklopédiából
(Opcode szócikkből átirányítva)

Az opkód (opcode) 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. A leggyakoribb opkód a 00 ami a NOP utasításnak felel meg. RAM memóriák, formázatlan adathordozók ezzel az "üres utasítással" vannak feltöltve.

Assembly[szerkesztés]

Az assembly nyelv, vagy csak assembly, egy alacsony szintű programozási nyelv, mely mnemonikokat (programozásban jártas 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, és precíz kontrollt biztosít a gépi utasításkészlet felett. A legtöbb programozási munkát ma már 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észletek[szerkeszté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.

Jegyzetek[szerkeszté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. [2012. október 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2022. március 2.)