Opcode: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: sintassi e spaziatura dei link e modifiche minori
FrescoBot (discussione | contributi)
m Bot: accenti
Riga 1:
In [[informatica]], un '''opcode''' ('''op'''eration '''code''') è una porzione di istruzioni in linguaggio macchina che specificano l'operazione che deve essere svolta . La loro specifica lunghezza e il formato sono disposti nell'[[Instruction Set Architecture]] del processore in questione (che puo' essere una [[central processing unit|CPU]] generica o una processing unit piu'più specializzata). Oltre allo stesso codice operativo, un'istruzione normalmente ha anche uno o più identificatori per gli [[operandi]] (esempio i dati) sui quali l'operazione deve agire, sebbene delle operazioni debbano avere operandi ''impliciti'', o nessun operando.
Ci sono set di istruzioni con campi quasi uniformi per l'opcode e gli specificatori degli operandi,cosi' come altri (l'architettura [[x86]] per esempio) con una piu'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>
 
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 piu'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).
 
==Assembly==
L' ''assembly'', è un linguaggio di programmazione a basso livello, che usa istruzioni ed operandi mnemonici per rappresentare codice macchina. Questo migliora la leggibilità mantenendo un preciso controllo sulle istruzioni macchina. La maggior parte della programmazione oggi è fatta usando 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/</ref> che sono tipicamente piu'più facili da leggere e scrivere. Questi linguaggi necessitano di essere compilati (tradotti in linguaggio macchina), o, nei 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 opcodes possonono anche essere trovati in cio' che si chiama [[byte code]] e altre rappresentazioni indirizzate
ad un interprete software anzichèanziché un dispositivo hardware. Questi set di istruzioni basati sul software spesso impiegano tipi di dati e operazioni leggermente di piu'più alto livello rispetto le controparti hardware, but sono nonostantetutto 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==