Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori Zilog Z8. Quarta puntata - 3

microcontrollori Zilog Z8

I registri rappresentano delle celle di memoria all’interno del File Registri. Vedremo dettagliatamente più avanti come si specifica un registro all’interno del file registri. Un altro esempio di indirizzamento registro è dato dalla seguente istruzione: LD R2,10 Questa istruzione carica nel registro R2 il contenuto del registro numero 10.

In realtà è possibile utilizzare per destinazione e per sorgente diverse altre possibilità. Ad esempio l’istruzione: LD R2,#10 ha il seguente significato: carica (LD = load) nel registro R2 il numero (questo è il significato del simbolo #) 10. Si parla in questo caso di indirizzamento immediato, in quanto il valore da caricare nel registro è specificato immediatamente dall’istruzione stessa. L’istruzione: LD R2,%10 significa: carica nel registro R2 il numero esadecimale 10 (il simbolo % posto prima di un numero sta appunto ad indicare che il numero è espresso non in base decimale ma esadecimale). Per indicare che un numero è in esadecimale si può anche scrivere una “h” dopo il numero stesso, ad esempio: 10h = 10 esadecimale.

E’ anche possibile utilizzare un’altra forma di indirizzamento utilizzando la seguente istruzione: LD R2,@R10 che ha questo significato: carica (LD) nel registro R2 il contenuto del registro puntato da R10. In questo caso, non viene caricato nel registro R2 il contenuto del registro R10, ma il contenuto del registro specificato da R10. Il registro R10 viene utilizzato come contenitore del registro che deve essere effettivamente sommato ad R2. Quando si parla di indirizzamento indiretto tramite registri, caratterizzato nell’assembler dal simbolo @, si intende che la sorgente o la destinazione dell’istruzione non è il registro indicato (si parlerebbe in questo caso di indirizzamento registro) ma il registro puntato dal contenuto del registro indicato. Esistono ancora altri tre possibili modi di indirizzamento denominati indirizzamento indicizzato, indirizzamento diretto e indirizzamento relativo. L’indirizzamento indicizzato viene utilizzato solo dall’istruzione load.

In pratica, si punta ad un registro che contiene un certo valore e tale valore viene sommato all’indirizzo del registro per ottenere l’indirizzo dell’operando. Un esempio di indirizzamento indicizzato è l’istruzione: LD 240(R0),R10 In questo caso, supponendo che il registro R0 contenga il numero 11 ed il registro R10 contenga il numero 25, si otterrà come effetto dell’istruzione il caricamento del numero 25 nel registro di indirizzo 251. Quest’ultimo viene infatti ricavato dalla somma del numero 240 con il contenuto del registro R0, uguale al numero 11. L’indirizzamento diretto, utilizzato solo dalle istruzioni JP (Jump) e CALL, consiste nel specificare direttamente l’indirizzo della prossima istruzione da eseguire. L’ultimo tipo di indirizzamento disponibile nei micro Z8 viene denominato indirizzamento relativo e viene in pratica utilizzato solo con le istruzioni di salto. L’indirizzamento relativo riporta nel codice dell’istruzione un valore di offset per specificare la locazione di destinazione del salto.

zilog_z8_indirizzamento_indicizzato

Analizzeremo nei dettagli questo tipo di indirizzamento durante la spiegazione delle singole istruzioni assembler. Vediamo ora di fare un breve riepilogo di quanto appena esposto.

- Realizzare un programma in linguaggio assembler significa scrivere, seguendo determinate regole, una serie di istruzioni che verranno poi trasformate dall’assemblatore in sequenze di byte. Queste sequenze verranno poi trasferite nelle memoria programma del micro ed eseguite dalla CPU durante il normale funzionamento.

- Ogni istruzione completa è costituita almeno da una istruzione e da alcuni operandi: l’istruzione coincide con l’operazione che il micro deve eseguire, gli operandi rappresentano l’oggetto dell’istruzione.

- Gli operandi possono essere di diversa natura, possono cioè essere dei numeri, dei registri, delle locazioni di memoria, in funzione di come specificato dall’istruzione stessa. Il modo in cui gli operandi vengono specificati prende il nome di indirizzamento.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 9 utenti e 75 visitatori collegati.

Ultimi Commenti