Numero 16 Aprile 2008 - Retrocomputing.net
Numero 16 Aprile 2008 - Retrocomputing.net
Numero 16 Aprile 2008 - Retrocomputing.net
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