Toimintakoodi , käyttökoodi , opkoodi - konekielen osa, jota kutsutaan käskyksi , joka määrittelee suoritettavan toiminnon.
Ohjekoodien määritelmä ja muoto riippuvat tietyn prosessorin käskyjoukosta (joka voi olla joko pääprosessori tai erikoistunut toimimaan jollakin tietyllä alueella). Toisin kuin itse operaatiokoodilla, käskyllä on yleensä yksi tai useampi määritelmä operandeille (eli datalle ), joille operaatio suoritetaan, vaikka joillakin operaatioilla voi olla eksplisiittisiä operandeja tai ei niitä ollenkaan. On olemassa käskysarjoja, joissa on samanlaiset kiinteän kokoiset kentät opkoodin ja operandin määrityksiä varten, kun taas toisilla ( esimerkiksi x86 -arkkitehtuuri ) on monimutkaisempi muuttuvapituinen rakenne. [yksi]
Arkkitehtuurista riippuen operandit voivat olla rekisteriarvoja , pinoarvoja , muita muistissa olevia arvoja , I/O-portteja ja muita arvoja, jotka määritellään ja joihin päästään eri osoitusmenetelmillä . Toimintotyyppejä ovat aritmeettiset operaatiot , tietojen kopiointi, loogiset operaatiot ja muut ohjelmistorakenteet , toisin kuin erikoiskäskyt (kuten CPUID ja muut).
Assembly-kieli tai yksinkertaisesti assembler on matalan tason ohjelmointikieli , joka käyttää muistikirjaa , ohjeita ja operandeja edustamaan konekoodia. Tämä parantaa luettavuutta säilyttäen samalla täyden hallinnan koneen ohjeista. On myös korkean tason kieliä , joilla on helpompi kirjoittaa suurta koodia kuin kokoonpanokieltä. Tällaiset kielet on käännettävä konekielelle kääntämistä varten tai ajettava käyttämällä muita ohjelmia - emulaattoreita tai tulkkeja . [2]
Opcode löytyy myös ns. tavukoodista ja muista esityksistä, jotka on suunniteltu ohjelmistotulkeille laitteiston sijaan. Nämä ohjelmistokäskyt käyttävät usein hieman korkeamman tason tietotyyppejä ja toimintoja kuin useimmat laitteistovastaavat, mutta ne perustuvat kuitenkin samoihin periaatteisiin. Esimerkkejä ovat Java -ohjelmointikielen Java Virtual Machine (JVM), Emacsin Lisp- koodin kääntämiseen käyttämä tavukoodi ja monet muut. [3]