Corso di programmazione per microcontrollori Zilog Z8. Quarta puntata – 1

microcontrollori Zilog Z8

Impariamo a programmare con la nuovissima famiglia di microcontrollori Z8 della Zilog caratterizzata da elevate prestazioni, grande flessibilità d’uso ed estrema facilità di impiego grazie alla disponibilità di un emulatore hardware a bassissimo costo. Quarta puntata. Nelle precedenti puntate del Corso abbiamo analizzato la struttura hardware della famiglia Z8 ed abbiamo visto come utilizzare l’emulatore per testare un programma prima di trasferirlo nella memoria del micro.

Ci occupiamo adesso in maniera più approfondita della programmazione della famiglia Z8. Il processo di scrittura di un programma per un microcontrollore passa tipicamente attraverso varie fasi. La prima operazione consiste nella scrittura del programma in assembler mediante un normale editatore di testi: a questo scopo vanno benissimo i vari editor in ambiente DOS (ad esempio il programma EDIT.COM). Una volta scritto, il programma va tradotto in linguaggio macchina. A tale scopo è necessario utilizzare un assemblatore. Quest’ultimo elabora il file sorgente per fornire in uscita un file “oggetto” contenente tutte le informazioni necessarie per la successiva traduzione in linguaggio macchina.

Una volta tradotto, il programma viene memorizzato nella memoria programma del micro, ovvero in un’area di memoria EPROM in cui la CPU va a leggere le varie istruzioni da eseguire. L’area di memoria del File Registri, come già detto nelle precedenti puntate, è composta da una serie di celle di memoria RAM (registri).

Alcune di queste celle sono dedicate a particolari funzioni mentre altre sono “libere” e possono essere utilizzate dal programma per memorizzare temporaneamente dei dati. Vedremo più avanti come procedere per realizzare un file che possa essere utilizzato con l’emulatore per il debug o la programmazione del micro. Ora però iniziamo a prendere confidenza con il linguaggio assembler vero e proprio.

z8_programma_linguaggio_assembler

IL LINGUAGGIO ASSEMBLER

Realizzare un programma in linguaggio assembler significa scrivere una sequenza ordinata di frasi, definite “statement”, le quali possono rappresentare: – istruzioni macchina, espresse nel linguaggio mnemonico dell’istruzione stessa; – direttive del compilatore che esprimono il modo in cui il compilatore deve appunto compilare il programma e che quindi non vengono direttamente tradotte in linguaggio macchina; a queste direttive si dà spesso il nome di pseudo istruzioni. La sintassi di una statement assembler è del seguente tipo: – Etichetta (label in inglese) separata dal simbolo di due punti (:);

- Codice operativo cioè l’istruzione che deve essere eseguita;

- Operandi ovvero gli elementi su cui deve agire l’istruzione;

- I commenti che devono sempre essere preceduti dal segno di punto e virgola (;).

Per meglio comprendere la sintassi del linguaggio assembler Zilog osserviamo il programma riportato in questa pagina. Le prime tre righe sono solo dei commenti poiché iniziano con un punto e virgola. Le sigle DATO_1, DATO_2, DATO_3 e SOMMA indicano delle variabili che vengono assegnate ai registri R0, R1, R2 ed R3 mediante la direttiva assembler “.equ”. Quest’ultima viene interpretata dall’assemblatore in fase di compilazione del programma e serve appunto per associare ad un determinato registro la sigla mnemonica di una variabile. La direttiva “.equ” consente anche di assegnare alle variabili dei valori costanti, ad esempio scrivendo: “DATO_1 .equ 10” si assegna alla variabile DATO_1 il valore 10. Le direttive non sono dunque delle istruzioni del microcontrollore ma impartiscono delle informazioni al compilatore; le direttive sono sempre precedute dal segno di punto (.).

Il kit è disponibile da Futura Elettronica

Tags:,

Leave a Reply