Opcode

Da Wikipedia, l'enciclopedia libera.

In informatica, un opcode (operation 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 può essere una CPU generica o una processing unit 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, 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).[1]

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).

Assembly[modifica | modifica sorgente]

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,[2][3] 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.[4]

Software instruction sets[modifica | modifica sorgente]

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, il Common Intermediate Language (CIL) di .Net e molti altri.[5]

Note[modifica | modifica sorgente]

  1. ^ Machine Language For Beginners - Introduction
  2. ^ TIOBE Software Popularity Index
  3. ^ Programming Language Popularity
  4. ^ Introduction to Assembly Language
  5. ^ bytecode Definition
informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica