Salve a tutti,
studiando l'assembler stiamo affrontando alcuni esercizi di "traduzione a mano" dei programmi, ed il loro successivo linkaggio.

Nella fattispecie ci danno un codice assembler, con una tabella dei codici operativi e dobbiamo "assemblarli" creando i moduli oggetto delle varie procedure, successivamente ci viene chiesto di effettuare il linkaggio dei vari moduli oggetto.

Io ho qualche dubbio proprio sull'esercizio di linkaggio, ovvero:

Abbiamo dei moduli oggetto, ognuno composto da:

-Identificatore;
-Tabella degli entry point;
-Tabella degli external reference;
-Codice macchina;
-Dizionario di rilocazione;

Per linkarli dobbiamo creare un unico modulo oggeto. Quindi a parte "il dover ricalcolare gli indirizzi" per far si che siano una "sequenza", quello su cui mi perdo e su come posizionare le varie tabelle.

Nelle diappositive a mia disposizione c'ho solo scritto che bisogno "ricalcolare", ma dopo dove le inserisco? Ovvero, dovrò ricreare "Un unico identificatore", "un unica tabella degli entry point" e via discorrendo? Oppure inserisco queste tabelle ancora in testa ad ogni codice operativo e nell'intestazione del modulo oggetto inserisco solo i dati relativi all'inizio di ogni modulo?

Questo dubbio perchè:

Fonderle insieme farebbe perdere di senso ad esempio alla tabella dei riferimenti esterni (se sono tutti linkati ormai che riferimenti esterni ci dovrebbero essere piu?), inoltre che identificatore dovrei mettergli a questo punto? insomma non mi sembra una cosa logica;

Mentre se, lasciamo le singole tabelle per ogni modulo oggetto linkato poi possiamo anche applicare un'altra cosa, ovvero che se modifichiamo "Un solo modulo oggetto" nella fase di ricompilazione possiamo ricompilare solo quello e non tutti assieme.

Insomma, sono davvero in dubbio. Purtroppo ne il libro ne le diappositive dicono nulla a riguardo.