ELEMANIA
Z80 - Istruzioni IN e OUT
Istruzioni IN e OUT

Le istruzioni IN e OUT consentono allo Z80 di comunicare con i dispositivi di ingresso e di uscita (detti anche periferiche o peripherals), per esempio leggendo un valore da un tastierino (dispositivo di ingresso) oppure visualizzando un numero su un display (dispositivo di uscita).

Alcuni esempi di uso di queste due istruzioni:

        IN A, (34h)    ; legge e carica in A il valore all'indirizzo 34h
        IN B, (C); legge e carica in B il valore all'indirizzo contenuto in C
        OUT (5Dh),A  ; scrive il valore contenuto in A all'indirizzo 5Dh
        OUT (C),D ; scrive il valore contenuto in D all'indirizzo contenuto in C

Osserviamo subito alcune particolarità:

Notiamo che in ogni caso la periferica viene indicato per mezzo di un indirizzo a 8 bit. Ciò all'inizio può creare qualche confusione in chi inizia a studiare lo Z80. Perché i dispositivi di input e output sono associati a indirizzi (come se fossero locazioni di memoria)? E perché questi indirizzi sono indicati con solo 8 bit (invece dei 16 usati normalmente dallo Z80)?

Porte e indirizzi

In generale in un microcomputer possono essere presenti numerosi dispositivi di input-output, alcuni più semplici (es. schiere di interruttori o di led, display a 7 segmenti etc.) altri più complessi (es. monitor, tastierini etc.).

Siccome esiste un'unica istruzione per scrivere sui dispositivi di uscita (OUT) e un'unica istruzione per leggere dai dispositivi di ingresso (IN) è evidente che occorre in qualche modo poter specificare dove si vuole scrivere e da dove si vuole leggere. Per questa ragione ogni dispositivo di input e ogni dispositivo di output sono identificati da un indirizzo univoco.

In realtà l'indirizzo identifica piuttosto una singola porta (o porto, in inglese port) all'interno di un dato dispositivo di input o di output. Le periferiche più semplici (es. un singolo display a 7 segmenti) contengono generalmente una sola porta ovvero ad essi è associato un singolo indirizzo. Viceversa periferiche più complesse (es. una stampante) possono essere formate da più porte cioè possono usare più indirizzi. Pertanto ogni indirizzo corrisponde in generale a una singola porta di ingresso o di uscita, mentre una periferica potrà anche contenere più porte.

Per quanto riguarda il numero di bit di indirizzo utilizzati, le istruzioni IN e OUT utilizzano soltanto gli 8 bit meno significativi del bus degli indirizzi: A7…A0. Un microcomputer basato su Z80 quindi può gestire (indirizzare) al massimo 256 porte di ingresso e 256 porte di uscita. Questo valore è stato ritenuto più che sufficiente dai progettisti dello Z80 per tutti i casi pratici.

Dal momento che le IN e OUT usano solo 8 bit come indirizzo, è possibile usare un singolo registro interno come puntatore. Tale registro è sempre il registro C, come osservato precedentemente.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it