Opkód
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]- ↑ TIOBE Software Popularity Index
- ↑ Archivált másolat. [2015. április 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. március 24.)
- ↑ Introduction to Assembly Language
- ↑ Bytecode definition. [2012. október 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2022. március 2.)