In informatica il codice operativo o opcode (operation code) è una porzione d'istruzione in linguaggio macchina che identifica l'operazione che deve essere eseguita.[1] La lunghezza e il formato del codice sono disposti nel set di istruzioni del processore in questione (che può essere una CPU generica o un'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 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 0001, codice operativo che indica al calcolatore di effettuare una somma (ADD).[2]

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

modifica

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 linguaggi di programmazione ad alto livello,[3][4] che sono tipicamente 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.[5]

Software instruction sets

modifica

Gli opcode possono anche essere trovati nel bytecode e in 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, il Common Intermediate Language (CIL) di .Net e molti altri.[6]

Note

modifica
  1. ^ Linguaggio macchina binario, in Enciclopedia della scienza e della tecnica, Roma, Istituto dell'Enciclopedia Italiana, 2007-2008. URL consultato il 4 ottobre 2025.
    «Il codice operativo è rappresentato da un codice intero senza segno assegnato a ciascuna istruzione macchina riconosciuta dall’hardware»
  2. ^ Machine Language For Beginners - Introduction, su atariarchives.org (archiviato dall'url originale il 13 febbraio 2008).
  3. ^ TIOBE Software Popularity Index, su tiobe.com.
  4. ^ Programming Language Popularity, su langpop.com (archiviato dall'url originale l'11 aprile 2015).
  5. ^ Introduction to Assembly Language, su swansontec.com.
  6. ^ bytecode Definition, su pcmag.com. URL consultato il 14 febbraio 2012 (archiviato dall'url originale il 6 ottobre 2012).

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Zilog Z80

Ugualmente i codici opcode (linguaggio macchina) erano identici ma preceduti da un nuovo prefisso opcode. Zilog pubblicò gli opcode ed i relativi codici

Metasploit Project

conoscenze specifiche di alcuni opcode nel programma che si intende attaccare o nelle sue DLL. Le posizioni degli opcode variano a seconda della versione

Nslookup

www.google.it, www.google.com C:\>nslook ------------ Got answer: HEADER: opcode = QUERY, id = 1, rcode = header flags: response, auth. questions = 1, answers

NOP (informatica)

3 cicli 80486 (introduzione delle pipeline): 1 ciclo lunghezza: 1 byte Opcode: 0x90 tempo di esecuzione: 1 μs (con clock di 4 MHz) Caratteristiche nell'architettura

Instruction set

i codici binari (opcode) che rappresentano i comandi eseguibili nativamente da un particolare design di CPU. L'insieme degli opcode di una specifica ISA

Architettura ARM

funzionalità. Per esempio solo i salti possono essere condizionati e alcuni opcode non possono essere utilizzati da tutte le istruzioni. Nonostante queste

ASCII R800

fallire i test di compatibilità ZEXALL); inoltre, l'opcode non documentato SLL era sostituito da un altro opcode non documentato chiamato TST. Sul lato costruttivo

IA-32

tempi di esecuzione per un 80386. Se al posto dell'opcode c'è un asterisco è perché l'istruzione ha molti opcode diversi a seconda delle varie forme; anche