Che cos’è un registro di stato?

Il registro di stato, noto anche come registro flag, parola di stato del programma e registro del codice di condizione, è definito come un insieme di bit di flag all’interno di un processore. Un registro è un circuito del processore ed è molto simile a una posizione di memoria, il che significa che i dati possono essere scritti e letti da esso. A differenza di una posizione di memoria, il registro di stato spesso non ha un indirizzo perché il microprocessore lo utilizza internamente. In un’unità di elaborazione centrale (CPU) che è a 8 bit, un bit del registro di stato può essere impostato, uguale al numero 1, o cancellato, uguale al numero 0, dai risultati delle operazioni del processore assortiti. Il processore a volte imposta o cancella i bit stesso, ma altre volte, una particolare istruzione di programma imposta o cancella i bit.

I bit del registro di stato sono anche chiamati flag o bit di flag e vengono utilizzati dal programmatore per determinati scopi di programmazione. Ogni flag in un registro di stato ha uno scopo univoco. Il flag di riporto imposta se un’operazione precedente ha fatto traboccare il settimo bit, o flag negativo, o ha fatto traboccare il flag di riporto. Imposta durante i turni di logica, confronto e aritmetica. Il flag zero viene impostato se il risultato dell’operazione più recente è stato 0.

Un flag chiamato “disabilitazione dell’interruzione” opera consentendo o non consentendo l’operazione di interruzioni, che sono istruzioni che interrompono temporaneamente determinate operazioni in modo che possano essere eseguite altre operazioni. Quando questo particolare flag è impostato, gli interrupt non possono operare, ma quando è chiaro, gli interrupt sono consentiti. Un altro flag chiamato flag decimale consente al processore di seguire una modalità binaria più avanzata per eseguire equazioni aritmetiche impeccabili. Quando il flag è impostato, utilizza questa modalità binaria avanzata. Un altro bit di registro è il bit di flag di interruzione, che viene impostato quando viene eseguito il comando Force Interrupt (BRK).

Un flag di overflow viene impostato durante le operazioni di aritmetica se un’operazione produce un risultato non valido. Il flag negativo viene impostato se il risultato dell’operazione più recente lo aveva impostato su 1. Un ultimo flag, chiamato bit 5, è senza nome e sempre impostato su 1. I programmatori essenzialmente non hanno bisogno di questo particolare bit.

Il registro FLAGS è un esempio di registro di stato che è stato utilizzato in alcune unità di elaborazione centrale e conteneva gli stati correnti di un processore. Era largo 16 bit ed è stato sostituito da EFLAGS e RFLAGS, rispettivamente un registro a 32 bit e un registro a 64 bit. Il registro FLAGS, tuttavia, aveva alcuni flag diversi dal registro originale a 8 bit, inclusi il flag di parità, il flag ausiliario e il flag trap.