PROGRAMMA DI SISTEMI TERZA AET 2014/2015 Docente: Gamerra Giuseppe, Porta Giovanni Testo : manuali originali dello Z80, appunti in classe, dispense sulla intranet, simulatore OSHONSOFT A) Non sono state fatte prove di ingresso, trattandosi di una materia che non ha propedeuticità specifiche nel curriculum precedente. B) Questa materia ha sinergie con elettronica e TdP, trattandosi di materie con programmi che hanno affinità di tipo logico ma ci sono pochi collegamenti diretti. C) Si ricorrerà sistematicamente ad interrogazioni scritte, salvo lasciata la possibilità di avere successivamente una interrogazione orale durante le ore di laboratorio. Inoltre, vista la tipologia della materia, la differenza tra orale e scritto diventa minima dopo i primi due mesi, essendo il nucleo della materia imperniato sulla programmazione in linguaggio macchina. D) Non ci sono particolari agganci con i progetti attivati nella classe, a parte il peer tutoring che può essere un buon ausilio per alcuni studenti. E) Riguardo alla programmazione, la voce 1 viene svolta interamente nel primo trimestre, mentre la voce 2 viene svolta a cavallo del primo trimestre e del pentamestre e costituisce il nucleo fondamentale dell apprendimento F) È ncessario che lo studente abbia a disposizione un computer a casa con il simulatore installato UNITA DIDATTICHE 1. MEMORIE E PROCESSORE ( 20 ore, primo trimestre) Memorie - Porte tristate - ADDRESS BUS, DATA BUS, ENABLE, READ, WRITE, WAIT - Memorie RAM, ROM, PROM, EPROM, EEPROM, FLASH - SSD e sua utilità - Memorie ad accesso seriale: hard disk, dvd - Tempo di accesso, tempo di latenza. - Memorie cash - SWAP del personal computer
Processore - Bus Esterni: ADDRESS BUS, DATA BUS, CONTROL BUS - INTERNAL BUS - elementi interni: PROGRAM COUNTER, INSTRUCTION REGISTER, DECODER/SEQUENCER, ALU, STACK POINTER, REGISTERS/POINTERS, FLAG - FETCH: sequenza delle microistruzioni relative - EXECUTE: catene di microistruzioni nel sequencer selezionata del decoder - condizionamento del WAIT della memoria all avanzamento delle microistruzioni read e write - condizionamento dei flag nella scelta di diramazioni nelle catene sei sequenze - vari tipi di istruzioni assembler: data move, aritmetico logiche, input/output, shift rotate, test e manipolazione di bit, Jump, Call, Return, Interrupt, Halt, Reset - complemento a 2: uso e vantaggio del complemento a due per gestire numeri negativi e fare addizioni. - esecuzione di moltiplicazione e divisione con processori che hanno la sola addizione - PREFETCH - interrupt maskable e non maskable - interrupt vettoriale, daisy chain - abilitazione e disabilitazione dell interrupt A) obiettivi: o acquisire una conoscenza più tecnica dell hardware che costituisce il computer o conoscere la struttura della macchina di Neuman e quindi del processore o B) metodo di insegnamento: o lezione frontale, o utilizzo di appunti messi nella intranet o C) modalità di verifica: domande scritte aperte, chiuse, ad incrocio, a risposta multipla 2. Z80 ( 60 ore nel primo trimestre, 64 ore nel secondo trimestre) Descrizione dell hardware (4 ore) - pinout - registri primari e secondari - puntatori - refresh delle memorie dinamiche - i vari tipi di interrupt - istruzioni a 8 e 16 bit di movimento dati - indirizzamento con puntatori, vantaggi nell uso dei puntatori - istruzioni a 8 e 16 bit aritmetiche - DAA e la gestione di numeri decimali - Istruzioni di JUMP condizionate e non condizionate
- Istruzione di CALL ed interrupt e gestione dello stack e stack pointer - Istruzioni che lavorano sui singoli bit - Istruzioni di rotazione e shift dei registri - Flag Z80 e loro utilizzo - Uso dell emulatore software dello Z80 - Assembler assoluto e assembler rilocabile
Programmazione in assembler (120 ore) - movimento di tabelle all interno della memoria - movimento di tabelle dagli ingressi verso la memoria e dalla memoria verso le uscite - somme esadecimali a 16, 24, 32 bit - somme decimali a 2, 4, 6 cifre decimali, uso di DAA - sottrazioni esadecimale e decimali, gestione del Carry come Borrow - moltiplicazione mediante somme successive - moltiplicazione mediante procedimento diretto con somme e Rotate - divisione mediante sottrazioni successive moltiplicazione diretta con somme e shift (diagramma a blocchi ) - divisione diretta con sottrazioni e shift (diagramma a blocchi - conversione decimale /binaria - conversione binaria/ decimale - numeri in complemento a 2 gestione del segno e dell overflow (fine primo trimestre, indicativo) - messa in ordine crescente degli elementi di una tabella - gestione degli interrupt di modo 0, 1, 2 e non mascherabile - programmazione con interrupt - conversione decimale binario per sottrazioni successive - conversione decimale binario diretta - conversione binario decimale per sottrazioni successive - conversione binario decimale diretta - ricerca di un elemento in una tabella - ricerca del massimo in una tabella - generazione di una tabella di numeri casuali - programmazione di contatori, timer A) Obiettivi: possedere il linguaggio assembler in modo di o essere in grado di eseguire semplici operazioni matematiche o essere in grado di muovere dati semplici o in blocchi da e verso la RAM, da e verso le periferiche o essere in grado di gestire una conversione dati da e verso il decimale o essere in grado di fare ricerche in una tabella, ordinare una tabella o generare numeri casuali o fare programmi ad interrupt per fare contatori, timer, interventi vari B) metodologia: o sviluppo ragionato in classe di programmi o simulazione dei programmi con il simulatore o sviluppo individuale di programmi seguito da simulazione o utilizzo di dispense sulla intranet o diagrammi a blocchi dei programmi C) verifiche : sviluppo di programmi su carta o direttamente su simulatore
3. PRELIMINARI PROGRAMMAZIONE IN C (16 ore, mese di maggio) - variabili numeriche e di caratteri - strutture iterative - array numerici A) Obiettivi: mettere delle basi della programmazione ad alto livello B) metodologia: o sviluppo ragionato in classe di programmi o simulazione dei programmi con devc o con codeblock o sviluppo individuale di programmi seguito da simulazione o utilizzo di dispense sulla intranet o diagrammi a blocchi dei programmi C) verifiche : sviluppo di programmi su carta o direttamente su computer Compresenze La compresenza verrà utilizzata per seguire gli studenti in laboratorio in modo assiduo durante le esercitazioni con il simulatore. Metodo di valutazione Nelle prove di programmazione ad ogni esercizio viene assegnato un punteggio. Nelle interrogazioni scritte ed orali viene data una penalità ad ogni errore o mancata risposta. Mondovi 5 novembre 2014 il docente Gamerra Giuseppe