Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori Zilog Z8. Sesta puntata - 2

Corso di programmazione per microcontrollori Zilog Z8

Quest’ultimo file è realizzato in formato MUFOM, come visto prima. La seconda riga: “mlink %1.out -k 3 -o %1.lnk” lancia il programma mlink, il linker, il quale prende in ingresso il file con estensione .out generato dall’assemblatore e fornisce in uscita un file con estensione .lnk.

La terza riga: “mload -i %1.lnk -o %1.hex” utilizza il file .lnk prima generato dal linker e, richiamando il programma mload, genera un file in formato Intel hex che, come sappiamo, risulta adatto ad essere interpretato dalla CPU del micro e di conseguenza dall’emulatore. La quarta riga: “mnm -l -s -o %1.sym %1.lnk” genera, lanciando il programma mnm, la tabella dei simboli. La quinta riga: “mlist -o %1.lst -l %1.lnk” genera il file .lst contenente il codice eseguibile con le relative allocazioni in memoria. A prima vista tutte queste operazioni sembrano alquanto complesse ma, una volta che si prende confidenza con le varie operazioni, ci si rende conto di quanto sia facile scrivere un programma in linguaggio assembler, assemblarlo ed emularlo. Per rendere ancora più chiaro quanto esposto fino ad ora, vediamo come svolgere una sessione di lavoro per scrivere un semplice programma che esegua la somma di tre numeri.

La prima operazione da compiere è quella di scrivere con un editor (ad esempio l’EDIT.COM del DOS) il seguente programma:

;-------------------------------------------------------------------
;Programma per provare l’utilizzo
;dell’assemblatore Z8
;-------------------------------------------------------------------
DATO_1 .equ r0
DATO_2 .equ r1
DATO_3 .equ r2
SOMMA .equ r3
.org 00
.word 00
.word 00
.word 00
.word 00
.word 00
.word 00
INIZIO: LD SOMMA,#00
ADD SOMMA,DATO_1
ADD SOMMA,DATO_2
ADD SOMMA,DATO_3
.end

Salviamo il programma con il nome PROVA.S e, dopo essere usciti dall’editor col quale abbiamo scritto il programma, digitiamo la riga di comando: “Asmz8 PROVA” e premiamo il tasto Invio. Ora il PC esegue il file batch visto prima e al termine delle varie operazioni troveremo nella directory in cui stiamo lavorando sei file caratterizzati dal nome PROVA. I file dovranno essere i seguenti: PROVA.S (file sorgente da noi scritto); PROVA.OUT (file in formato MUFOM generato dall’assemblatore); PROVA.LNK (file generato dal linker); PROVA.HEX (file in formato Intel hex adatto ad essere utilizzato dall’emulatore); PROVA.SYM (tabella dei simboli); PROVA.LST (file listato). Di questi file, quelli con estensione .out e .lnk sono abbastanza difficili da interpretare, in quanto sono costituiti da varie sezioni, per comprendere le quali occorre studiare in dettaglio il modo di funzionamento dell’assemblatore e del linker. E’ invece interessante andare a vedere come sono composti i tre file .HEX, .SYM e .LST. Il file PROVA.HEX si presenterà in questo modo:

:100000000000000000000000000003C00023082
:040010000231023285
:00000003FD
:00000001FF

Questo file è in pratica costituito dalle istruzioni del programma che abbiamo scritto, in codice esadecimale, più alcuni campi di controllo che costituiscono appunto il formato Intel hex. Il file PROVA.SYM dovrà, invece, contenere le seguenti informazioni: DATO_1 N 00000000 DATO_2 N 00000001 DATO_3 N 00000002 INIZIO N 0000000C SOMMA N 00000003 Questo file riporta i valori che sono stati assegnati alle variabili DATO_1, DATO_2, DATO_3 e SOMMA ed il valore assegnato all’etichetta INIZIO.

Infine, il file PROVA.LST, il cui contenuto è riportato nel box di questa pagina, è sicuramente di gran lunga il file più interessante poiché riporta per ogni riga di istruzione sia il relativo codice esadecimale che la locazione di memoria in cui l’istruzione stessa verrà posizionata.

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 1 utente e 22 visitatori collegati.

Utenti online

Ultimi Commenti