Istituto Tecnico Industriale "Enrico Fermi"

Help On Chat

[Ritorna all'elenco sessioni]

Chat del 17 Maggio 2017 dalle 18:31:55 alle 19:07:45

Stefano Salvi
Eccoci. Quando volete partiamo.
Alessandro BRANCHINI
buopnasera
Cos\'è memorizzato nella tabella degli esterni?
Nicholas BRACCAIOLI
buonasera
Christian CINESI
Buonasera
Francesco ROCCA
buonasera
Alessandro BRANCHINI
Abbiamo detto che il linker crea una tabella globale dei simboli. Vorrei sapere come viene creata e usata?
Cosa faccio se non metto un .org?
Nei miei appunti ho scritto che il linker scrive al chiamante (penso l\'assemblatore) l\'indirizzo dell\'istruzione chiamata. Non ho capito cosa vuol dire, se lei ha capito che cos\'ho scritto potrebbe spiegarmelo?
Stefano Salvi
Nella tabella degli esterni vengono memorizzati tutti i simboli che non sono definiti nel sorgente ma che vengono qui utilizzati. Per ogni simbolo, oltre al nome, vengono memorizzate tutte le posizioni in cui è utilizzato.
Alberto COMPAGNONI
Buonasera
Nicola RADAELLI
Potrebbe spiegare le librerie dinamiche
Nicolas BENATTI
buonasera prof (Branchini non cominciare ad assillare ;-)
Alessandro BRANCHINI
ok, grazie
Stefano Salvi
Branchini 2: il linker RACCOGLI tutte le tabelle dei pubblici dei vari .obj in un\'unica tabella globale dei pubbblici. Quando crea questa tabella, avendo deciso l\'indirizzo di caricamente dell\'obj che contiene i simboli, correggerà (rilocherà) gli indirizz della tabella. Quando poi il linker trova un esterno in un obj, lo cerca nella tabella globale dei pubblici, per saperne l\'indirizzo.
Branchini 3: se non metto .org allora sarà il linker a decidere da dove parte il mio codice (in base ai parametri che gli darà l\'utente nelk momento in cui lo chiama).
Alessandro BRANCHINI
ok, grazie
Stefano Salvi
Branchini 4: il linker sistema tutte le "call" che non hanno l\'indirizzo chimamto perché è esterno, scrivendoci dentro l\'indirizzo della subroutine chiamata, che è stato raccolto nella tabella globale dei pubblici.
Nicolas BENATTI
prof, che differenza c\'è (se ce ne sono, dagli appunti penso di sì), tra la tabella globale dei simboli e la tabella globale dei pubblici ?
Alberto COMPAGNONI
Per fare l\'esercizo sulle istruzioni in linguaggio macchina, dobbiamo usare il linguaggio che abbiamo fatto in classe (quello delle fasi) oppure l\'assembly dell\'hc08?
Stefano Salvi
Radaelli: le librerie dinamiche vengono utilizzate nei sistemi multitasking, nei quali più programmi girano contemporaneamente. In questi sistemi, invece di caricare una copia (ad esempio) della printf attaccata dentro ognio programma, i programmi "dicono che usano la printf" e il loader carica in memoria la libreria che contoiene la printf una volta sola. I programmi la condividono.
Nicola RADAELLI
ok grazie
Alessandro CONSOLINI
ma quindi quante sono le tabelle e molto brevemente a cosa servono
Alberto COMPAGNONI
L\'assemblatore in linea, nelle sue operazioni di base, individua, valuta e produce (cosa ?)
Stefano Salvi
Benatti: nessuna. La tabella è sempre quella. La tabella globale dei simboli (per similitudine con la tabella "locale" dei simboli che si crea l\'assemblatore) contiene tutti i simboli pubblici che sono nei vari file oggetto. Raccoglieno i "pubblici", la chiamo anche tabella globale dei pubblici(per similitudine con le tabelle dei pubblici che sono state raccolte).
Alex TARANA
cosa fa l\'assemblatore nella prima passata?
Nicolas BENATTI
perfetto, grazie
Davide TENEDINI
quale è la differenza tra indirizzamento immediato e implicito?
Christian CUZZI
Nella prima passata vengono create sia la tabella dei pubblici che degli esterni?
Stefano Salvi
Compagnoni: le ISTRUZIOI sono "di fantasia", quindi in un "linguaggio moi" che a volte somiglia a quello usato i classe e a volte con quello dell\'HC08. Le fasi hanno il LORO linguaggio.
Alberto COMPAGNONI
ok, grazie
Stefano Salvi
Tarana: nella prima passata l\'assemblatore interpreta istruzioni e parametri, calcola la posizione di ogni istruzione e compila la tabella dei simboli.
Tenedini: l\'indirizzamento IMMEDIATO indica che il valore è una COSTANTE. Nell\'indirizzamento implicito invece il valore è in una VARIABILE. La variabile però non è nominata esplicitamente tra i parametri: è implicita nel tipo di istruzione.
Alessandro BRANCHINI
Quando scriviamo le fasi compiute per svolgere un operazione all\'interno del processore, come facciamo a indicare un operazione di confronto e dire "se ho questo vai li altrimenti vai là"?
Alberto COMPAGNONI
L\'assemblatore in linea, nelle sue operazioni di base, individua, valuta e produce (cosa ?)
Davide TENEDINI
ok grazie
Diego CASTAGNA
Quante sono le tabelle in totale e quali sono?
Stefano Salvi
Cuzzi: probabilmente nella prima passata vengono RACCOLTE LE INFORMAZIONI per produre in output le tabelle dei pubblici e degli sterni. Probabilmente per i simboli pubblici viene solo aggiunto un flag nella tabella dei simboli normale, mentre per gli esterni vengono raccolti gli indirizzi da modificare.
Nicolas BENATTI
prof, l\'ndirizzo dei simboli nella tabella globale dei simboli pubblici è anche\'asso rilocabile, giusto? Perchè non è detto che gli obj siano sempre caricati nello stesso ordine e/o nello stesso posto in memoria
Nicholas BRACCAIOLI
prof,cosa fa il .area?
Stefano Salvi
Branchini: in realtà solo una riga delle fasi sarà "condizionata" e potrebbe essere scritta: "se i flag valgono ... allora copia TAR in PC"
Francesco PIGNOLI
prof, cos\'è un obj di preciso?
Alessandro CONSOLINI
ma .org cosa indica?
Stefano Salvi
Compagnooni: l\'assemblatore in linea interpreta il mnemonico, valuta i parametri e produce opcode e parametri in forma binaria.
Castagna: nel file oggetto ci sono quattro parti: il codice rilocabile, la tabella di rilocazione, la tabella deio pubblici e la tabella degli esterni, quindi tre tabelle (e un codice).
Alberto COMPAGNONI
Grazie mille
Christian CUZZI
A che cosa serve l\'ABS?ù
Tommaso SPROCATI
cosa succede dopo che il linker ha aggiunto i simboli pubblici degli obj alla tabella dei simboli pubblici globale?
Alessandro BRANCHINI
Quindi se dovessi scrivere la fase dovrei scrivere: SE( FLAG_X == X ) WRITE TAR -> PC ?
Christian CINESI
Qual\'è il compito del loader?
Stefano Salvi
BENATTI: l\'indirizzo nella tabella globale dei simboli è RILOCATO perché il loinker, prima di inserire il simbolo in tabella, conoscendo l\'indirizzo di inszio del pezzo di codice, corregge l\'indirizzo del singolo simbolo.
Braccaioli: .area consente di raggruppare pezzi di codice/variabili inseriti in sorgenti diversi, in modo che il linker li metta nella stessa area di memoria (ad esempio l\'area della ROM o della RAM).
Nicholas BRACCAIOLI
ah ok grazie mille
Francesco PIGNOLI
dughjkbvjhvgx cvbcjhvvjh db cxzvbhefwq
Christian CINESI
Cosa contiene la tabella di rilocazione?
Alessandro BRANCHINI
interessante
Stefano Salvi
Pinoli: un "obij" o meglio "file oggeto" è un file prodotto dall\'assemblatore rilocabile che contiene le informazioni per il linker per mettere insieme i pezzi e costruire il programma completo. Contiene le quattro aprti elencate prima.
Alex TARANA
quante sono le tabelle e a cosa servono?
Stefano Salvi
Consolini: .org indica un indirizzo assoluto dal quale l\'assemblatore comincerà a mettere quello che produce (codice o variabili).
Francesco PIGNOLI
grazie prof
Nicolas BENATTI
perfetto, grazie
Stefano Salvi
Cuzzi: ABS (parametro di .area) serve per indicare che l\'area ha già dentro gli indirizzi giusti e quindi il linker non deve metterla insieme alle atre dello stesso nome e rilocarla.
Alessandro BRANCHINI
mi ci sono da studiare anche le istruzioni in linguaggio assembler?
Stefano Salvi
Sprocati: quando il linker ha aggiunto TUTTI i simboli pubblici dei vari OBJ nella tabella globale die simboli può cominciare a produrre il codice definitivo (e metterlo nel file d\'uscita, l\'eseguibile) perché è in grado di sistemare l\'indirizzo di ogni chiamata di procedura o di variabile esterna, lasciata in sospeso dall\'assemblatore.
Alessandro BRANCHINI
cosa devo installare per usare l\'emulatore di HC08 oltre a sdcc?
Nicolas BENATTI
il pacchetto debian che trovi sul sito del prof
Stefano Salvi
Branchini: esattamente. Quel "se" in realtà si tradurrà in un\'operatore logico (tipo una "and").
Alessandro BRANCHINI
si, ma quale
Tommaso SPROCATI
ok grazie
Nicolas BENATTI
salvi.mn.it
sezione software
hc08pgm
Alessandro BRANCHINI
ok
Nicolas BENATTI
scarica il debian per debian
Stefano Salvi
Cinesi: la tabella di rilocazione contiene gli indirizzi all\'interno del codice rilocabile che devono essere modificati se cambio l\'origine del codice (lo sposto su e giù per la memoria).
Christian CINESI
Ok, grazie
Stefano Salvi
Tarana: riguarda indietro che ti dovrei aver già risposto (guarda anche le risposte degli altri, per il funzionanmento delle tabelle).
Branchini: no, le isstruzioni non le devi studiare. Quando le userai in lab, le troverai nel documento, nel compito te le descrivo nella domanda.
Alberto COMPAGNONI
Il linguaggio delle fasi è quello con le istruzioni RD,WR,\ ecc... ?
Alessandro BRANCHINI
ok, grazie
Stefano Salvi
Branchini: devi installare SDCC dal software manager normale ed il pacchetto di hc08pgm tirandotelo giù da qualche parte (tipo moodle o il mio sito).
Alessandro BRANCHINI
Quindi se dovessi scrivere la fase dovrei scrivere: SE( FLAG_X == X ) WRITE TAR -> PC ?
ok
Leonardo BRUSINI
branchini ti ha gia risposto
Stefano Salvi
Compagnoni: esattamente. Il linguaggio delle fasi dice che fili accendo e spengo.
Alessandro BRANCHINI
ah si?
hai ragione, sono cieco
Stefano Salvi
No, è che siete tanti...
Alberto COMPAGNONI
grazie
Nicolas BENATTI
eh purtroppo...
Stefano Salvi
Visto che siete bravi, è anche una ricchhezza.
Che ne dite, possiamo chiudere e lasciare il posto ai prossimi (4ITel)?
Alessandro BRANCHINI
direi di sì
Tommaso SPROCATI
quante sono le tabelle alla fine di tutto?
Diego CASTAGNA
Le quarte sono cattive >.>
Stefano Salvi
Allora buona cena, buon riposo e in bocca a lupo!
Alessandro BRANCHINI
parlo proprio io

[Ritorna all'elenco sessioni]