Chat del 17 Dicembre 2015 dalle 17:00:51 alle 17:46:40
- Lavjit SINGH
- \'sera prof.
- Stefano Salvi
- Cominciavo a preoccuparmi... Salve a tutti. Avanti con le domande!
- Diego NOGARETTI
- Buona sera prof
- Lavjit SINGH
- Indirizzamento Indiretto corrisponde alla logica dei ai puntatori?
- Diego NOGARETTI
- Può descrivere i tipi di indirizzamento
- Giacomo RIGHI
- Buonasera
- Stefano Salvi
- Lavjit: si, l\'indirizzamento indiretto corrisponde all\'implementazione dei puntoatori.
- Lavjit SINGH
- Nel Cross Sviluppo editor,compilatore,loader,... funzionano alla stassa maniera dello sviluppo residente?
- Stefano Salvi
- Nogaretti: posso ELENCARE i tipi di indirizzamento o descrivere UN tipo di indirizzamento...
- Diego NOGARETTI
- va bene
- meglio elencare
- Stefano Salvi
- Lavjit: Editor: esattamente identico; Compilatore: produce un diverso assembly; Assemblatore: capisce un diverso assembly e produce opcode differenti; Linker: è circa uguale; Loader è COMPLETAMENTE diverso perché carica da tutt\'altra parte.
- Nogaretti: implicito (o intrinseco), immediato, diretto, indiretto, indicizzato, registro e stack
- Lavjit SINGH
- L\'unica differenza tra le librerie dinamiche e le late binding è il momento nel cui viene caricata la libreria?
- Diego NOGARETTI
- grazie. può ri-spiegare il cross-compilatore
- Giacomo RIGHI
- Ma la parte che abbiamo fatto sulla Comunicazione sarà presente in verifica?
- Alessandro VOLPARI
- Buonasera
- Stefano Salvi
- Lavjit: a livello macroscopico, si, più in dettaglio, cambia quello che la libreria contiene (una collezione di funzioni invece dei metodi di una classe)
- Francesco MORETTI
- potrebbe spiegarmi l\'indirizzamento registro?
- Stefano Salvi
- Nogaretti: il cross-compilatore è identico al compilatore residente, salvo che produce un file di uscita in un linguaggio differente (assembler o linguaggio macchina del target invece che locale)
- Righi: no, la comunicazione non l\'abbiamo mesa.
- Diego NOGARETTI
- potrebbe spiegare le differenze tra linguaggio compilato e interpretato ?
- Lavjit SINGH
- Nel formato istruzione una costante(DISPLAY) occupa la dimensione dell\'op-code perche\' si trova nel programma e l\'accumulatore non occupa nulla giusto?
- Stefano Salvi
- Moretti: l\'indirizzamento registro è una variante del diretto. In questo caso le variabili sono nei registri e non nella memoria, quindi l\'indirizzo passa da 16 bit (per 64KiB di memoria) a 3 bit (per 8 registri, quindi lo impacchetto insieme all\'opcode nel byte dell\'opcode stesso.
- Nogaretti: in un linguagio compilato le istruzioni che scriviamo vengono tradotte (ikn più passaggi: compilatore - assembler -linker) in istruzioni in linguagggio macchina direttamente eseguinbili dal processore. Nei linguaggi interpretati invece le istruzioni vengono lette ed "eseguite al volo" senza tradurle in linguagio macchina ma richiamando direttamente funzioni dell\'interprete che eseguono il lavoro.
- Giacomo RIGHI
- Può rispiegare l\'indirizzamento stack?
- Marco MORONI
- Sul Data Bus passano i vari indirizzi( ALTO, MEDIO, BASSO,...)?
- Giacomo RIGHI
- Cos\'è lo stack pointer?
- Stefano Salvi
- Lavjit: Non capisco quelloc he scrivi... Parli delle operazioni ad un operando in memoria? In questo caso la sorgente del primo operando nonché destinazione del risultato è in una cella di memoria predeterminata (implicita, direi adesso), quindi non occupa memoria nell\'istruzione (ma richiede cicli di lettura e scrittura).
- Diego NOGARETTI
- quali sono le differenze tra librerie dinamiche e statiche e come vengono caricate in memoria (il funzionamento) ?
- Lavjit SINGH
- al primo operando ci sommo una costante o l\'accumulatore.parlo di costante e accumulatore
- Stefano Salvi
- Rigni: L\'indirizzamento stack è una vriante dell\'indirizzamento indiretto nella quale il registro indice (Stack Pointer in questo caso) viene decrementato dopo le scritture e incrementato prima delle letture
- Ancora Rigni (perché sono assieme): lo Stack Pointer è un registro che punta alla "cima" di un\'area LIFO. Andando "su e giù" consente di scrivere quanto voglio e di recuperare quelloc he ho scritto in ordine inverso.
- Marco MORONI
- prof e me niente :( ?
- Francesco MORETTI
- cos\'è il trasferimento di controllo?
- Lavjit SINGH
- no moroni
- Marco MORONI
- *Sul Data Bus passano i vari indirizzi( ALTO, MEDIO, BASSO,...)?
- Diego NOGARETTI
- differenze tra lib dinamiche e statiche
- Stefano Salvi
- Moroni: ho risposto alle due di Nogaretti assieme perché erano collegate... Sul Data Bus passano i PARAMETRI DELLE ISTRUZIONI che a volte sono indirizzi ed i DATI che a volte sono puntatori. Funziona?
- Nicola VENTURINI
- ma porco giuda
- ho perso il quaderno di Sistemi mo dove studio
- Lavjit SINGH
- gg wp
- Stefano Salvi
- Noigaretti: Le libterie statiche vengono lette dal Linker e le funzioni richiestre vengono estratte e aggiunte in coda al file eseguibile. Le librerie dinamiche vengono caricate in memoria dal Loader (una sola volta per tutti i programmi che le richiamano) e l\'eseguibile richioame le funzioni che gli servono dalla copia comune.
- Marco MORONI
- poi la lascio :)
- Circa, se io avessi un sistema con DATA a 1 Byte e ADDRESS a 4 byte dovrei fare 4 giri per leggere l\'indirizzo intero giusto?
- Diego NOGARETTI
- ok capito
- Stefano Salvi
- Moretti: Le istruzioni di trasferimento del controllo sono quelle che spostano il controllo del programma (il PC) da una parte all\'altra del codice. In pratica sono Jump, CCall e Return, in tutte le varianti possibili.
- Venturini: non ho parole... Trasferisciti da un amico....
- Lavjit SINGH
- al primo operando ci sommo una costante o l\'accumulatore.parlo di costante e accumulatore
- Diego NOGARETTI
- può descrivere la chiamata-funzione ?
- Stefano Salvi
- Lavjit: non riesco a seguirti. Di che istruzione stai parlando?
- Lavjit SINGH
- alloro glielo spiego in parole povere:NEL DISEGNINO DEI RETTANGOLI QUANTO LI FACCIO GRANDI IL DISPLAY E L\'ACCUMOLATORE?
- Marco MORONI
- se io avessi un sistema con DATA a 1 Byte e ADDRESS a 4 byte dovrei fare 4 giri per leggere l\'indirizzo intero giusto?
- Stefano Salvi
- Nogaretti: la chiamata di funzione (a prescindere dai parametri - diciamo pero ora priva di parametri) si esegue tramite un\'istruzione CALL. Questa istruzione è essenzialmente una Jump, che però, prima di cambiare il valore del Program Counter, lo salva nello stack.
- Diego NOGARETTI
- ok. qual\'è il contenuto di un file oggetto ?
- Stefano Salvi
- Lavjit: sia Display che Accumulatore sono IMPLICITI, quindi non occupano spazio "nei rettangolini" (nella codifica dell\'istruzione).
- Lavjit SINGH
- Un esempio di pseudoistruzione potrebbe essere una label?
- Stefano Salvi
- Moroni: giusto: se il data bus è da 1 buyte (8 bit) e l\'Address Bus da 32 bit (4 byte), quindi quattro volte più grande, dovrei fare quattro giri per leggere un\'iidirizzo dalla memoria.
- Francesco MORETTI
- cosa serve una label?
- Stefano Salvi
- Nogaretti: un file oggetto contiene quattro parti: codice rilocabile, tabella di rilocazione, tabella dei pubblici e tabella degli esterni. Ricondici quelloc he ho detto alla spiegazione, perché non sono stato troppo specifico in classe... ero più sul descrittivo.
- Diego NOGARETTI
- ok. il ciclo di sviluppo residente corrisponde alle ide ?
- Stefano Salvi
- Lavjit: no, una Label è un modo per creare una costante, si associa ad un\'istruzione o ad una pseudoistrizione. ".org". ".byte". ".word" ecc. sono pseudoistruzioni.
- Moretti: una Label è un nome associato ad un indirizzo, quindi una costante il cui valore è quello dell\'indirizzo dell\'oggetto (istruzione o pseudoistruzione) vicino a cui l\'ho messa.
- Sofia MARI
- potrebbe, per favore, elencare le categorie di istruzioni?
- Stefano Salvi
- Nogaretti: il coclo di sviluppo è una sequenza di istruzioni. Un IDE contiene (o coordina) gli strumenti che servono a realizzare il ciclo di sviluppo (reidente o cross, a seconda dell\'IDE).
- Diego NOGARETTI
- un sistema embedded è un sistema nel quale inserisco una scheda programmabile per svolgere determinate funzioni e basta, giusto ?
- Stefano Salvi
- Mari: le categorie di istruzioni sono "Aritmetico/Logiche", "I/O" (Inputo/Output), "Trasferimento dati" (o "movimento dati" o "movimento"), "Trasferimento del controlo", "Contorllo della CPU".
- Sofia MARI
- le istruzioni che rientrano in "trasferimento del controllo" sono quelle che aumentano il program counter giusto?
- Stefano Salvi
- Nogaretti: si, (nella definizione classica) un sistema embedded è un sisterma di calcolo (una scheda programmabile) inserito all\'interno di un\'apparecchiatura il cui scopo non è fare calcoli. Naturalemnte ci sono eccezioni a questa definizione, ad esempio la calcolatrice tascabile che è un sistema embedded...
- Marco MORONI
- come argomento c\'è anche il PLL?
- Diego NOGARETTI
- qual\'è il funzionamento del loader nel cross-sviluppo ?
- Francesco MORETTI
- diego ma quante domande fai?
- Diego NOGARETTI
- finchè c\'è tempo :)
- Stefano Salvi
- Mari: non che "aumentano" - OGNI istrizione aumenta il program counter, se no il programma non andrebbe avanti. Le istruzioni di trasferimento dle controllo sono quelle che MODIFICANO (rispetto all\'aumento fisiologico) il valore dle Program Counter.
- Moroni: no, il PLL no.
- Nopgaretti: (se vede che ha parecchie domande arretrate... va bene così) il funzionamento del loader nel cross-sviluppo è die più vari: andiamo da hardware che gestisce la RAM della scheda target a programmi in rete che inviano il codice alla scheda target... L\'importante è che devono trasferire un codice prodotto sul sistema host nel sistema target.
- A dire il vero il tempo è teminato dieci minuti fa... Che facciamo?
- Lavjit SINGH
- io vado a fare allenamento.lei?
- Sofia MARI
- ricapitolando quando io scrivo un programma lo scrivo su un editor, il compilatore trasforma ciò che ho scritto in linguaggio assembly e l\'assemblatore lo trasforma in codice oggetto che poi verrà caricato in memoria dal loader, giusto?
- Marco MORONI
- indirizzamento diretto?
- Stefano Salvi
- Mari: esatto.
- Francesco MORETTI
- cos\'è il pll?
- Stefano Salvi
- Moroni: Indirizzamento diretto: quando il valore che mi serve è contenuto in una variabile in memoria.
- Moretti: il PLL è quelloc he sincronizza il clock di ricezioen nella trasmnissione seriale sincrona che non c\'è in questo compito.
- Direi che è ora di andare...
- Nicola VENTURINI
- ahahah
- Marco MORONI
- LDA Y \n STA X
- questo fa un diretto da Y a X giusto?
- Sofia MARI
- poi non ho capito una cosa, lei aveva detto che posso scrivere programmi in linguaggi diversi e poi il linker trasforma i loro file oggetto in un unico eseguibile caricabile in memoria dal loader (?)
- Stefano Salvi
- Allora buona cena (magari più tardi), buon riposo (dopo l\'ultima ripasata) e in bocca al lupo. (Moroni: Y non esiste... LDA copia il valore dell\'argomento in A, STA copia il valore di A nell\'argomento)
- Marco MORONI
- buona serata prof
- Stefano Salvi
- Mari (ma quest aè proprio l\'ultima): Posso avere più compilatroi che producono ognuno un pezzo di programma in assembler, poi un pezzo lo scrivo io direttamente in assembler, poi cucio tutti insieme con il linker...
- Aux Revoir
|