In [[informatica]], un '''opcode''' ('''op'''eration '''code''', ''codice operativo'') è una porzione di istruzionid'istruzione in [[linguaggio macchina]] che specificanospecifica l'operazione che deve essere svoltaeseguita. La loro specifica lunghezza e il formato del codice sono disposti nell'nel [[Instruction Set Architecture|set di istruzioni]] del processore in questione (che può essere una [[central processing unit|CPU]] generica o unaun'[[Processore|unità processing unitd'elaborazione]] più specializzata). Oltre allo stesso codice operativo, un'istruzione normalmente ha anche uno o più identificatori per gli [[operandi]] (ad esempio i [[dato|dati]]) sui quali l'operazione deve agire,; sebbeneva dellenotato che alcune operazioni debbanopossono avere operandi ''impliciti'', o nessun operando.
Ci sono set di istruzioni con campi quasi uniformi per l'opcode e gli specificatori degli operandi, così come altri (l'architettura [[x86]] per esempio) con una più complicata, struttura a lunghezza variabile. ▼
Un esempio potrebbe essere il numero <code>0001</code>, codice operativo che indica al calcolatore di effettuare una somma (ADD).<ref name="machine">[http://web.archive.org/web/20080213090055/http://www.atariarchives.org/mlb/introduction.php Machine Language For Beginners - Introduction<!-- Bot generated title -->]</ref> ▼
▲Ci sono set di istruzioni con campi quasi uniformi per l'opcode e gli specificatori degli operandi, così come altri (l'architettura [[x86]] per esempio) con una più complicata , struttura a lunghezza variabile.
A seconda dell'architettura, gli '''[[operandi]]''' possono essere valori nei registri, valori nello stack, altri valori in memoria,porte [[I/O]], ecc., specificata e accessibile usando un più o meno complesso modello di indirizzamento. I tipi di '''operazioni''' includenti operazioni aritmetiche, operazioni di copia dei dati, operazioni logiche, e controllo del programma,come istruzioni speciali (come [[CPUID]] e altri). ▼
▲Un esempio potrebbe essere il numero <code>0001</code>, codice operativo che indica al calcolatore di effettuare una somma (ADD).<ref name="machine">[ httphttps://web.archive.org/web/20080213090055/http://www.atariarchives.org/mlb/introduction.php Machine Language For Beginners - Introduction<!-- Bot generated title -->]</ref>
▲A seconda dell'architettura , gli '''[[operandi]]''' possono essere valori nei registri, valori nello stack, altri valori in memoria, porte [[I/O]], ecc., specificata e accessibile usando un più o meno complesso modello di indirizzamento. I tipi di '''operazioni''' includentiincludono operazioni aritmetiche, operazioni di copia dei dati, operazioni logiche , e controllo del programma, come istruzioni speciali (come [[CPUID]] e altri).
==Assembly==
L'''[[assembly]]'', è un [[linguaggio di programmazione]] a basso livello, che usa istruzioni ed operandi mnemonici per rappresentare codice macchina. QuestoCiò migliora la leggibilità mantenendo un preciso controllo sulle istruzioni macchina. La maggior parte della programmazione oggi è fatta usando [[Linguaggio di programmazione ad alto livello|linguaggi di programmazione ad alto livello]],<ref name="tiobe">[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html TIOBE Software Popularity Index]</ref><ref name=langpop>[http://langpop.com/ Programming Language Popularity<!-- Titolo generato automaticamente -->] {{webarchive|url=https://web.archive.org/web/20150411135441/http://langpop.com/ |data=11 aprile 2015 }}</ref> che sono tipicamente più facili da leggere e scrivere. Questi linguaggi necessitano di essere [[compilatore|compilati]] (tradotti in linguaggio macchina), o, nei [[Linguaggio di scripting|linguaggi di scripting]], eseguiti attraverso altri eseguibili compilati.<ref name="asm">[http://www.swansontec.com/sprogram.htm Introduction to Assembly Language]</ref>
==Software instruction sets==
Gli opcode possono anche essere trovati in ciò che si chiama [[byte code]] e altre rappresentazioni indirizzate ad un interprete software anziché un dispositivo hardware. Questi set di istruzioni basati sul software spesso impiegano tipi di dati e operazioni leggermente di più alto livello rispetto alle controparti hardware, ma nonostante tutto sono costruiti lungo modelli similari. Esempi possono essere il linguaggio [[Java (linguaggio di programmazione)|Java]] con la ''[[Macchina virtuale Java|Java virtualVirtual Machine]]'' machine(JVM), il [[bytecode ]] usato nello [[GNU Emacs]] per il codice [[LISP]] compilato, .NETil ''[[Common Intermediate Language]] '' (CIL) , di [[Microsoft .Net|.Net]] e molti altri.<ref name="bytecode"> [{{Cita web |url=http://www.pcmag.com/encyclopedia_term/0 ,2542,t=bytecode&i=39108,00%2C2542%2Ct%3Dbytecode%26i%3D39108%2C00.asp |titolo=bytecode Definition<!-- Bot generated title --> ] |accesso=14 febbraio 2012 |dataarchivio=6 ottobre 2012 |urlarchivio=https://web.archive.org/web/20121006015213/http://www.pcmag.com/encyclopedia_term/0%2C2542%2Ct%3Dbytecode%26i%3D39108%2C00.asp |urlmorto=sì }}</ref> ▼
Gli opcodes possono anche essere trovati in ciò che si chiama [[byte code]] e altre rappresentazioni indirizzate
▲ad un interprete software anziché un dispositivo hardware. Questi set di istruzioni basati sul software spesso impiegano tipi di dati e operazioni leggermente di più alto livello rispetto alle controparti hardware, ma nonostante tutto sono costruiti lungo modelli similari. Esempi possono essere il linguaggio Java con la Java virtual machine(JVM), il bytecode usato nello [[GNU Emacs]] per il codice [[LISP]] compilato, .NET [[Common Intermediate Language]] (CIL), e molti altri.<ref name="bytecode">[http://www.pcmag.com/encyclopedia_term/0,2542,t=bytecode&i=39108,00.asp bytecode Definition<!-- Bot generated title -->]</ref>
==Note==
<references />
== Collegamenti esterni ==
* {{FOLDOC|operation code|operation code}}
{{Portale|informatica}}
[[Categoria:Microprocessore]]
[[Categoria:Instruction Processingprocessing]]
[[de:Opcode]]
[[en:Opcode]]
[[es:Código de operación]]
[[hu:Opkód]]
[[ko:Opcode]]
[[nl:Opcode]]
[[pl:Kod operacji]]
[[pt:Código de operação]]
[[ru:Код операции]]
[[simple:Opcode]]
[[sv:OP-kod]]
[[tr:İşlem kodu]]
|