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