Metodo di indirizzamento

Nell'ambito della programmazione, l'indirizzamento è la definizione degli operandi (ad esempio, i campi dati) a cui si riferisce un'istruzione macchina. Gli operandi possono essere indirizzati in modi diversi (tipo di indirizzamento o modalità di indirizzamento), ad esempio specificandoli direttamente nell'istruzione o facendo riferimento a un indirizzo di memoria. La modalità di indirizzamento da utilizzare è determinata dal codice dell'operazione e dalle informazioni sugli operandi contenute nell'istruzione macchina solo in forma codificata.

Nella programmazione in linguaggio assembly, il programmatore stesso determina il tipo di indirizzamento, selezionando determinati codici di operazione (e i parametri associati). Quando si utilizzano linguaggi di programmazione superiori, le istruzioni macchina sono generate automaticamente dai compilatori (e quindi anche i loro tipi di indirizzamento sono definiti), di solito senza l'influenza diretta del programmatore. Il processore decodifica le istruzioni macchina durante l'esecuzione ed esegue i calcoli degli indirizzi corrispondenti, oltre a caricare i dati da utilizzare nell'istruzione.

Le diverse modalità di indirizzamento sono un aspetto della progettazione dei processori. Sono definite all'interno di una determinata architettura del set di istruzioni e determinano il modo in cui l'indirizzo di memoria effettivo (quello fisico) degli operandi viene determinato/calcolato per ogni istruzione del linguaggio macchina, ad esempio utilizzando le informazioni memorizzate nei registri e/o le costanti presenti all'interno dell'istruzione macchina.

Se un'istruzione si riferisce a più operandi (campi sorgente e/o destinazione), le informazioni necessarie per l'indirizzamento sono richieste/presenti separatamente per ciascun operando. Altri parametri contenuti nell'istruzione macchina (come le informazioni sulla lunghezza degli operandi, gli indicatori di salto da istruzioni logiche come uguale o maggiore) non vengono utilizzati per l'indirizzamento in senso stretto.