ELEMANIA
Z80 - Assemblatori
Assemblatori (assembler)

Un assemblatore (assembler) è un programma per tradurre automaticamente un programma in linguaggio assembly in linguaggio macchina, evitando la fatica della ricerca manuale dei codici da parte dell'operatore. Ovviamente ogni assemblatore è specifico di un certo µP o al massimo di una certa famiglia di assemblatori, perciò noi siamo qui interessati in particolare agli assemblatori per Z80.

Occorre anche notare che la sintassi del linguaggio assembly Z80 (e ancora più quello delle direttive dell'assemblatore) è tutt'altro che completamente standardizzato, perciò è possibile che lo stesso sorgente non venga accettato da tutti gli assemblatori e che sia necessario introdurre piccole modifiche per adattarlo alle differenze.

Assemblatori online: ZASM

Un modo rapido e abbastanza semplice per assemblare un programma è quello di ricorrere a un assemblatore online.

Per quanto riguarda lo Z80 una soluzione molto semplice è rappresentata da Zasm - z80 online assembler (dal sito è anche possibile scaricare il programma per MacOS X, Linux, BSD e altri sistemi operativi, ma non per Windows). Per usare questo assemblatore online occorre preparare un file di testo (per esempio usando il Blocco Note) e quindi caricarlo dalla pagina del programma. Premendo quindi sul pulsante Assemble si ottiene un file con estensione .rom che contiene il programma tradotto in linguaggio macchina:

Se non viene specificato in nessun modo, il codice prodotto viene generato per essere caricato a partire dall'indirizzo 0000h. Se si vuole indicare l'indirizzo iniziale bisogna usare la direttiva:

#code <start>,<size>

dove <start> indica l'origine (il primo indirizzo) dove dovrà essere caricato il codice e <size> è la dimensione in byte dell'area di memoria allocata al codice. Per esempio si osservi il seguente spezzone di programma:

#code 8000h,10
loop: INC A  ; incrementa A
  JP loop ; ciclo infinito
           

La direttiva #code è necessaria per consentire all'assemblatore di calcolare correttamente l'indirizzo dell'etichetta loop.

L'assemblatore permette di generare in uscita, oltre a un file binario (Binary) anche un file in formato Intel Hex. Si tratta di un particolare tipo di file di testo in cui i valori esadecimali sono scritti come caratteri (e dunque possono essere letti e modificati con un normale editor di testo) e che contiene anche informazioni riguardo all'indirizzo in memoria delle istruzioni. E' un formato piuttosto complesso e non se ne farà uso nel seguito. E' bene sapere però che esiste, perché molti assemblatori e simulatori offrono anche questa opzione. Nella figura qui sotto è mostrato il contenuto di un file Intel Hex di esempio con il significato dei diversi campi:

Assemblatori online: The ORG ASM IDE

Un assemblatore online un po' più evoluto è The ORG ASM IDE. Nonostante il nome IDE (Integrated Development Enviroment) non si tratta di un vero e proprio ambiente di sviluppo integrato, ma di un assemblatore particolarmente dedicato allo sviluppo di programmi per le calcolatrici della serie TI-83 plus e all'home computer ZX Spectrum.

All'avvio della pagina principale viene già caricato un programma di default, che può essere tranquillamente cancellato e sostituito con il proprio codice assembly. Per assemblare il programma bisogna scegliere Build-As binary e quindi scaricare il file (con estensione .bin) contenente il programma assemblato:

Sempre con riferimento al semplice programma con ciclo infinito considerato prima, la versione scritta per The ORG ASM è leggermente diversa da quella precedente:

.org 8000h  
loop:    
  INC A  ; incrementa A
  JP loop ; ciclo infinito
           

Si osservi la direttiva .org (per indicare l'indirizzo iniziale) e il fatto che la riga contenente l'etichetta e quella con l'istruzione sono distinte (questo assemblatore non accetta le etichette sulla medesima linea dell'istruzione).

Un assemblatore offline: Z80 PC Assembler

Un pratico assemblatore offline per Windows (non necessita di installazione) è lo Z80 PC Assembler. L'uso del programma è abbastanza semplice. Basta scrivere il testo in assembly nella finestra di editing, scegliere l'indirizzo iniziale nella casella Start Address (in decimale) e quindi cliccare su Assemble:

Per generare il file binario (con estensione .bin) bisogna scegliere quindi Dump to File.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it