Registro di stato
Il registro di stato (noto in inglese anche come status register, flag register o condition code register (CCR)) è un insieme di flag presenti nella CPU che indicano lo stato di diverse operazioni matematiche. Questi flag sono comunemente usati per confrontare e testare condizioni richieste dai programmi.
L'ordine, il numero e il significato dei flag del registro di stato varia da processore a processore, a causa delle diverse configurazioni ed architetture che sussistono per ognuno di esso. Ad esempio, l'architettura x86 possiede come registro di stato il FLAGS register.
[modifica] Process status word
A volte il registro di stato prende anche il nome di Process Status Word (o PSW). In questo caso, il termine designa un'area di memoria o un registro che contiene informazioni sullo stato dei programmi in esecuzione sul sistema operativo.
Tipicamente il PSW contiene bit che segnalano eventuali stati d'errore e codici di condizione come l'abilitazione/disabilitazione dell'interrupt e il passaggio dalla modalità utente alla modalità supervisore. È importantissimo per il ciclo di interrupt, in quanto, in caso di interruzione del programma in esecuzione, provvede a salvarne lo stato, in modo tale che, una volta ultimata la gestione di interrupt, possa essere ripristinato.
A volte il PSW può includere anche un program counter, che contiene l'indirizzo della prossima istruzione da eseguire.
[modifica] Flag di un registro di stato
- Z = Zero flag (o flag zero). Indica se il risultato di un'operazione matematica o logica è zero.
- C = Carry flag (o flag di riporto). Indica se il risultato di un'operazione produce una risposta non contenibile nei bit usati per il calcolo. Questo flag può essere anche posizionato prima di un'operazione matematica come operando aggiuntivo per alcune istruzioni.
- N (a volte S) = Negative or Sign flag (flag negativo o di segno). Indica se il risultato di un'operazione matematica è negativo.
- V (a volte O) = Overflow flag. Indica se il risultato di un'operazione è in overflow, secondo la rappresentazione in complemento a due. È simile al carry flag, ma viene impiegato nelle operazioni in cui è presente il segno degli operandi.
- I = Interrupt enable flag (o flag di abilitazione dell'interruzione). Gli interrupt possono essere abilitati o meno rispettivamente alzando od abbassando questo flag.
- P = Parity flag (o flag di parità). Indica se il numero di bit del risultato è pari o dispari.