Opkód

A Wikipédiából, a szabad enciklopédiából

Az opkód operációkód, azaz műveleti kód, vagy műveleti jelkód. 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.

Assembly[szerkesztés | forrásszöveg szerkesztése]

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észletek[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]