ELEMANIA
Z80 - Editor di testo e esadecimali
Editor di testo

Un editor di testo è un programma per la creazione e la modifica di semplici file di testo. Un semplice esempio di editor di testo è il Blocco Note (o Notepad) di Windows.

E' importante non confondere le funzioni di un editor di testo con quelle di un programma di videoscrittura (tipo Word o OpenOffice). Le principali differenze sono:

Gli editor di testo sono dunque utili quando si è interessati alla sola scrittura di testo, come avviene per esempio nella programmazione. Il già citato Blocco Note di Windows è un editor di testo piuttosto primitivo. Altri editor più evoluti offrono un controllo della sintassi durante la digitazione, visualizzando con colori diversi le istruzioni, i commenti, le etichette etc.

Per quanto riguarda l'assembly Z80 e i linguaggi di programmazione in generale, un buon editor è ConTEXT, distribuito gratuitamente per Windows anche in versione portable (che non necessita di installazione).

La figura seguente mostra per esempio il confronto fra lo stesso codice assembly visualizzato col Blocco Note di Windows e con ConTEXT:

Editor esadecimale

Un editor esadecimale (detto anche hex editor o editor binario) è in grado di visualizzare e di modificare il contenuto di qualsiasi file in quanto consente di operare a livello di singolo byte. In pratica con un editor esadecimale è possibile modificare il contenuto binario del file, indipendentemente dalla sua rappresentazione (testo, immagine, programma etc.).

Un ottimo editor esadecimale gratuito è HxD disponibile gratuitamente per Windows anche in versione portable (gira anche sotto Linux usando Wine). In alternativa è anche possibile ricorrere a un servizio online come Mobilefish, che consente di modificare file binari senza installare nulla sul proprio computer.

La figura seguente mostra il confronto fra lo stesso file di testo visualizzato col Blocco Note di Windows e con l'editor esadecimale HxD:

Osserviamo anzitutto la prima riga (accanto a Offset (h)): essa mostra, partendo da 00, un contatore progressivo in esadecimale che si incrementa di una unità per ogni byte contenuto nel file. Nel nostro esempio il contatore arriva fino a 0F e dunque il file è composto da 15 byte.

La riga sottostante invece fornisce i valori esadecimali di ogni singolo byte del file. Siccome il file esaminato nell'esempio è un file di testo, i valori corrispondono ai codici ASCII dei singoli caratteri che compongono il file (compresi anche i caratteri nascosti, come l'andata a capo).

Editor esadecimale per i file in linguaggio macchina

Un uso più interessante dell'editor esadecimale è per la scrittura o la modifica di file contenenti istruzioni in linguaggio macchina dello Z80.

Consideriamo un semplice esempio. Supponiamo di voler eseguire il seguente piccolo programma:

  LD A,8  ; carica in A il valore 8
  INC A ; incrementa A
           

Consultando la tabella riassuntiva delle istruzioni possiamo trovare valori dei codici operativi e degli operandi corrispondenti alle due istruzioni precedenti e precisamente:

Istruzione Codice operativo Operando
LD A,8 3E 08
INC A 3C  

Il programma scritto in linguaggio macchina è dunque composto da solo 3 Byte (3E 08 3C) e può essere facilmente realizzato con un editor esadecimale. La figura seguente mostra per esempio la scrittura del programma usando HxD:

Ovviamente la scrittura manuale di programmi in linguaggio macchina non è pratica nel caso di programmi lunghi e complessi, dove è senz'altro più conveniente usare un assemblatore. Tuttavia anche in questi casi l'uso di un editor esadecimale può essere comodo per controllare il codice prodotto dall'assemblatore ed eventualmente fare piccole modifiche.

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it