La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Registri della CPU Z80 A accumulatoreFA BCBC R rinfresco memoriaI vettore interruzioni F flag IX registro indice IY registro indice SP stack pointer PC.

Presentazioni simili


Presentazione sul tema: "Registri della CPU Z80 A accumulatoreFA BCBC R rinfresco memoriaI vettore interruzioni F flag IX registro indice IY registro indice SP stack pointer PC."— Transcript della presentazione:

1 Registri della CPU Z80 A accumulatoreFA BCBC R rinfresco memoriaI vettore interruzioni F flag IX registro indice IY registro indice SP stack pointer PC program counter PrincipaliAlternativi g e n e r a l e U s o s p e c i a l e U s o 8 b i t b i t 16 Il Program Counter contiene lindirizzo di memoria dellistruzione che deve essere eseguita Laccumulatore contiene il risultato delle operazioni aritmetiche e logiche a 8 bit Il registro dei flag (o di stato) contiene 6 bit che segnalano condizioni particolari come: riporto, zero, segno meno, ecc...; i bit di questo registro, ad eccezione del bit di riporto (carry) non possono essere alterati da istruzioni di scrittura I registri H ed L, se accoppiati, contengono i risultati delle operazioni aritmetiche a 16 bit; Lo stack pointer (puntatore area di stack) contiene un indirizzo di riferimento che delimita una zona di memoria riservata al salvataggio temporaneo di dati e indirizzi, tramite tecnica a catasta (lultimo dato entrato è il primo a uscire) Il registro interruzioni contiene la metà alta di un indirizzo, utile a gestire il Modo 2 delle richieste dinterruzione dei periferici Il registro di rinfresco è usato per il ripristino, tramite apposite istruzioni, di eventuali memorie dinamiche collegate alla CPU I registri alternativi servono per salvare temporaneamente dati presenti nei corrispondenti registri principali Un 23° registro (Registro Istruzioni, 8 bit), integrato nella CPU, contiene il codice operativo, prelevato dalla memoria, dellistruzione da eseguire; da qui è inviato al blocco di decodifica, controllo e temporizzazione, per realizzare le operazioni elementari per la sua esecuzione, salvate nella ROM DED HLHL E Registro Istruzioni inoltre, come le coppie BC e DE e i registri IX e IY, possono essere usati come puntatori di memoria o contatori a 16 bit; IX e IY consentono di elaborare con istruzioni dirette, dati presenti in una delle 256 celle di memoria situate intorno allindirizzo puntato

2 Più in dettaglio, lo Z80 contiene 208 bit accessibili dal programmatore in lettura/scrittura (R/W). La figura illustra come questi bit siano organizzati in 18 registri a 8 bit e in 4 registri a 16 bit. Tutti i registri sono realizzati utilizzando memoria RAM statica. La CPU contiene due insiemi accoppiati di registri di uso generale. I due insiemi comprendono due gruppi di sei registri di uso generale che possono essere utilizzati singolarmente come registri a 8 bit, oppure in coppia come registri a 16 bit; un gruppo è́ formato dai registri BC, DE, HL e il gruppo alternativo da BC, DE', HL. Oltre ai sei registri, in ogni gruppo è presente un accumulatore e un registro dei flag. Registri di uso generale Accumulatore (A) contiene il primo operando e il risultato di una operazione aritmetica o logica a 8 bit. Registro dei flag (F) indica condizioni specifiche per le operazioni effettuate (per esempio se il risultato di una operazione è́ o non è zero). Significato di ciascun bit del registro F: Il bit 0 (C). E' il flag di carry che in genere è settato a 1 quando si verifica un riporto sull'ultimo bit. Inoltre è alterato dalle operazioni di shift e dalle operazioni logiche. Il bit 1 (N). E' il flag di sottrazione che viene settato quando viene effettuata una sottrazione o un decremento. Non può essere testato mediante i salti condizionati, ma è sfruttato dalla operazione DAA. Il bit 2 (P/V). E' il flag di parità o di overflow. Quando lavora come flag di parità (in genere nelle operazioni logiche e negli shift) viene posto a uno quando il numero dei bit posti a 1 nel risultato è̀ pari. Se invece lavora come flag di overflow (in genere nelle operazioni aritmetiche) viene settato a 1 quando il segno del risultato è̀ errato. Supponiamo ad esempio di voler sommare -1 a Le istruzioni sono: LD A,255 ; -1=255 in complemento a 2 ADD A,128 ; -128=128 in complemento a 2 Il risultato corretto sarebbe -129 ma invece nel registro A troviamo il valore 127. In questo caso il flag P/V sarà posto a 1. Il bit 3 e il bit 5 non sonò flag e non hanno significato. Il loro valore è̀ casuale. Il bit 4 (H). E' il flag di half-carry e indica il riporto che avviene dal bit 3 al bit 4 dell'accumulatore. Non può̀ essere testato con le istruzioni di salto condizionato, ma è sfruttato dall'operazione DAA. Il bit 6 (Z). E' il flag di zero: viene posto a 1 nel momento in cui il risultato di un'operazione è̀ 0. Il bit 7 (S). E' il flag di segno. Quando viene posto a 1 significa che il risultato dell'operazione è̀ negativo (il bit più significativo del risultato è̀ uguale a 1). Registri di uso speciale Contatore di programma ( Program Counter, PC ) Questo registro contiene lindirizzo, a 16 bit, dellistruzione in corso di lettura della memoria. Il PC é automaticamente incrementato ogni volta che il suo contenuto viene trasferito alle linee di indirizzamento. Quando si ha un salto nel programma, il nuovo valore dellindirizzo viene posto nel PC, invece di eseguire loperazione automatica di incremento. Puntatore della catasta ( Stack Pointer, SP ) Il puntatore contiene lindirizzo a 16 bit, dellattuale limite superiore di unarea detta stack posta in una qualunque zona della memoria esterna RAM. Lo stack é organizzato in modo LIFO ( Last-In-First-Out, ultimo ingresso-prima uscita). I dati possono essere inseriti od estratti dalla catasta (attraverso un generico registro, mediante istruzioni di PUSH (spingi) o di POP (estrai). Luso della catasta semplifica la gestione delle interruzioni e dei sottoprogrammi. Registri indice ( Index Register, IX & IY ) Tali registri memorizzano un indirizzo di partenza, a 16 bit, che può essere utilizzato nei modi di indirizzamento indicizzato. Questo tipo di indirizzamento facilita grandemente la gestione di tabelle di dati. Nellindirizzamento indicizzato il registro indice viene utilizzato come base per puntare ad una zona di memoria nella quale devono essere immagazzinati ( o recuperati ) dei dati. Un byte addizionale che specifica lo spostamento ( displacement ) dalla base é incluso nellistruzione che utilizza questo tipo di indirizzamento. LIndirizzo finale viene quindi ottenuto sommando allindirizzo di partenza ( contenuto nel registro indice ) lo spostamento specificato. Lo spostamento é espresso come numero binario con segno in complemento a due. Registro dellinterruzione ( Interrupt Page Address Register, I ) La CPU Z80 può operare in un modo (Modo 2) in cui la risposta ad una interruzione può essere realizzata mediante una chiamata indiretta (call) ad una qualsiasi locazione di memoria. Il registro I viene usato per memorizzare gli 8 bit più significativi dellindirizzo indiretto, mentre il dispositivo generante linterruzione fornisce gli 8 bit meno significativi dellindirizzo. Questa caratteristica permette che i programmi di gestione delle interruzioni siano posizionati in modo dinamico ovunque nella memoria, mentre il tempo di accesso ai suddetti programmi resta in ogni caso minimo. Registro di rinfresco della memoria ( Memory Refresh Register, R ) Lo Z80 contiene un contatore di rinfresco della memoria, per facilitare luso delle memorie dinamiche, Sette degli 8 bit di questo registro sono automaticamente incrementati dopo ogni lettura di unistruzione. Lottavo bit, mediante unistruzione apposita, rimane invece come programmato.


Scaricare ppt "Registri della CPU Z80 A accumulatoreFA BCBC R rinfresco memoriaI vettore interruzioni F flag IX registro indice IY registro indice SP stack pointer PC."

Presentazioni simili


Annunci Google