Opcode: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
||
(41 versioni intermedie di 31 utenti non mostrate) | |||
Riga 1:
In [[informatica]] un '''opcode''' ('''op'''eration '''code''', ''codice operativo'') è una porzione d'istruzione in [[linguaggio macchina]] che specifica l'operazione che deve essere eseguita. La lunghezza e il formato del codice sono disposti nel [[Instruction Set Architecture|set di istruzioni]] del processore in questione (che può essere una [[central processing unit|CPU]] generica o un'[[Processore|unità d'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; va notato che alcune operazioni possono 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">[https://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''' includono 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. Ciò 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 Virtual Machine]]'' (JVM), il [[bytecode]] usato nello [[GNU Emacs]] per il codice [[LISP]] compilato, il ''[[Common Intermediate Language]]'' (CIL) di [[Microsoft .Net|.Net]] e molti altri.<ref name="bytecode">{{Cita web |url=http://www.pcmag.com/encyclopedia_term/0%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>
==Note==
<references />
== Collegamenti esterni ==
* {{FOLDOC|operation code|operation code}}
{{Portale|informatica}}
[[Categoria:Microprocessore]]
[[Categoria:Instruction
|