16.07.2014 Views

Numero 16 Aprile 2008 - Retrocomputing.net

Numero 16 Aprile 2008 - Retrocomputing.net

Numero 16 Aprile 2008 - Retrocomputing.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Jurassic News - Anno 3 - numero <strong>16</strong> - <strong>Aprile</strong> <strong>2008</strong><br />

te salvato sul disco. L’estensione<br />

è opzionale se si è usato “.BAS”<br />

come consigliato.<br />

Compilazione. La compilazione<br />

vera e propria produce due file su<br />

disco che hanno lo stesso nome<br />

del sorgente ed estensioni rispettivamente<br />

“.REL” per codice oggetto<br />

rilocabile e “.LST” per il file di<br />

listing.<br />

A parte il file di listing che potrebbe<br />

anche essere soppresso se non ci<br />

interessa curiosare sul lavoro fatto<br />

dal nostro compilatore, il file oggetto<br />

contiene le istruzioni pronte per<br />

produrre il codice macchina, cosa<br />

che avviene invocando il programma<br />

che effettua il linker.<br />

Linking. Dal codice oggetto rilocabile<br />

si ottiene un eseguibile (formato<br />

COM) con il comando:<br />

L80 myprog,myprog/N/E<br />

questi scrive su disco un file eseguibile<br />

che si chiamerà “myprog.<br />

COM”. Il nome dello stesso sarà<br />

sufficiente per mandare in esecuzione<br />

il programma stesso.<br />

Tutti questi comandi hanno la loro<br />

sintassi e i loro flag da usare secondo<br />

le circostanze. Noi abbiamo<br />

semplificato all’osso la sessione di<br />

compilazione, operando secondo<br />

il default. La cosa che succederà<br />

nella maggior parte dei casi sarà<br />

che quantomeno il sorgente e il<br />

compilato dovranno risiedere su un<br />

dischetto diverso rispetto a dove si<br />

trovano i comandi. In questo caso<br />

l’indicazione “B:” prima del nome<br />

del file fornisce la specifica necessaria<br />

a coinvolgere la seconda unità<br />

mag<strong>net</strong>ica collegata al computer<br />

e gestita dal CP/M.<br />

In particolare il Linker/Loader carica<br />

in memoria un file in formato<br />

REL, e lo “accomoda” in memoria<br />

in modo che sia eseguibile a partire<br />

dall’indirizzo 100h.<br />

Lo switch /N dice a L80 di salvare<br />

una immagine della memoria sul<br />

disco con espensione .COM.<br />

Lo switch /E semplicemente comanda<br />

al linker di uscire al CP/M<br />

una volta terminato il lavoro.<br />

Una cosa da ricordare è che al<br />

momento del link devono essere<br />

presenti le funzioni di libreria utilizzate<br />

all’interno del codice. Ad<br />

esempio se il sorgente effettua<br />

una chiamata di funazione ad una<br />

qualche funzione presente in una<br />

libreria FORTRAN compatibile, la<br />

libreria stessa deve essere indicata<br />

al momento del link:<br />

L80 myprog, forlib/S, myprog/N/E<br />

La differenza di esecuzione fra interprete<br />

e compilatore viene dichiarata<br />

variabile dal 10% fino al 30%,<br />

quando si operi una attenta organizzazione<br />

del sorgente mettendo<br />

in attop tutti quegli accorgimentin<br />

che permettono al compilatore di<br />

ottimizzare il codice.<br />

36

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!