Qual è la differenza tra la procedura vicina e quella lontana nel microprocessore 8086?
- Una chiamata o un salto di procedura vicina viene utilizzata quando la procedura di destinazione o l'indirizzo di salto si trova all'interno del segmento di codice corrente.
- L'offset, o la distanza dall'inizio del segmento di codice, è codificato in uno spostamento di 16 bit.
- Il metodo Near consente chiamate di procedura/salto all'interno di un segmento di codice da 64K con una singola istruzione macchina.
Procedura lontana:
- Una chiamata o un salto di procedura lontana viene utilizzato quando l'indirizzo di destinazione si trova in un segmento diverso da quello corrente.
- Include un valore di segmento a 16 bit e uno spostamento di offset a 16 bit, consentendo chiamate a procedure/indirizzi di salto in qualsiasi posizione di memoria.
- Le chiamate di procedura/salto lontano richiedono due istruzioni:la prima carica il segmento nel registro dell'indirizzo del segmento (DS/CS/SS/ES), e la seconda contiene il comando Salta vicino con indirizzo offset.
Tabella riepilogativa
| Caratteristica | Vicino alla procedura | Procedura lontana |
|:---|:---|:---|
| Ambito | All'interno dello stesso segmento di codice | Attraverso diversi segmenti di codice |
| Dimensioni dello spostamento | Spostamento a 16 bit | Segmento a 16 bit + spostamento a 16 bit |
| Numero di istruzioni | 1 istruzione | 2 istruzioni (una per il caricamento del segmento e una per il salto vicino) |