I.T.I.S Carlo Zuccate Venezia Mestre. Triennio di specializzazione in Informatica, sperimentazione ABACUS.
|
|
- Samuele Sasso
- 5 anni fa
- Visualizzazioni
Transcript
1 I.T.I.S Carlo Zuccate Venezia Mestre Triennio di specializzazione in Informatica, sperimentazione ABACUS. Materia: Sistemi per l elaborazione e la trasmissione dell informazione Insegnante: Stefano Lazzarini stefano.lazzarini@libero.it Relazione programma del quarto anno Alunno Boscolo Jona 4ISC Anno Scolastico: 2005/2006
2 INDICE Assembler.. 2 I microcomputer e i microprocessori 3 L architettura dell Intel La funzione di traduzione degli indirizzi... 6 I registri di segmento dell Intel I registri generali dell Intel Il linguaggio macchina dell Intel Le istruzioni aritmetico logiche a due operandi. 12 Le istruzioni aritmetico logiche ad un operando 15 Le istruzioni di salto.. 16 Istruzioni di chiamata/rientro da una procedura 17 L utilizzo dello stack di sistema 17 L istruzione Interrupt e l istruzione Interrupt Return I metodi d indirizzamento.. 19 Le interruzioni 20 Le istruzioni di controllo 21 Tipi di interruzione 22 Il programma debug del DOS 24 I sistemi Operativi 25 L architettura logica dei sistemi d elaborazione 26 La multiprogrammazione 27 Il processo d esecuzione di un programma 28 Il descrittore dei processi 29 Esercizi Svolti 32 Boscolo Jona 4ISC Anno Scolastico 2005/2006 1
3 Assembler Boscolo Jona 4ISC Anno Scolastico 2005/2006 2
4 I microcomputer e i microprocessori Un microcomputer è un sistema a programma memorizzato la cui unità centrale è composta da un numero limitato di circuiti integrati ad altissima scala di integrazione. Almeno uno di questi circuiti integrati svolge la funzione di processore. Questo circuito integrato viene anche detto microprocessore. Quindi per microprocessore si intende un circuito integrato ad altissima scala di integrazione che svolge la funzione di processore all interno dell unità centrale di un microcomputer. Nell unità centrale di un microcomputer ci sono pochi circuiti integrati interconnessi tra loro. La maggior parte di essi è infatti collegata al bus di sistema. Microprocessore Memoria Centrale Interfacce di I/O Interfacce di I/O Bus di sistema I microprocessori si dividono in famiglie. Una famiglia è un insieme di microprocessori in qualche modo compatibili tra loro. La famiglia dei microprocessori Intel Una delle caratteristiche più importanti dei processori della famiglia Intel è la loro compatibilità verso il basso, cioè tutti i programmi realizzati per uno qualsiasi di questi microprocessori può essere eseguito da tutti i microprocessori successivi della stessa famiglia. Questo è possibile in quanto l insieme delle istruzioni eseguibili da ogni nuovo modello di processore di questa famiglia possiede come sottoinsieme tutte le istruzioni eseguibili dai modelli precedenti. Anno Sigla Numero di transistor Frequenza di Funzionamento CPI H/CPI Khz Mhz Mhz 16 CPI IPS Mhz 8 CPI 2 MIPS Mhz 4 CPI 3 MIPS Mhz 2 CPI 50 MIPS 1993 Pentium Mhz 1 CPI 200 MIPS 1997 Pentium II Mhz 0,75 IPC 1999 Pentium III Ghz 1,5 IPC 2000 Pentium IV Ghz 2 IPC 6 GIPS La velocità di un processore si ottiene facendo il rapporto tra la frequenza di funzionamento e i cicli per istruzione: V= F/CPI Boscolo Jona 4ISC Anno Scolastico 2005/2006 3
5 L Architettura dell Intel 8086 L Intel 8086 è composto da: 16 Linee Dati, che trasportano i dati da un modulo all altro 20 Linee d indirizzi, che trasportano gli indirizzi di locazione della memoria 2 linee di alimentazione, che alimentano ciascun modulo 2 linee di controllo, che controllano e sincronizzano il funzionamento di ogni modulo La capacità della memoria di questo microprocessore è 2 20 byte e cioè 1Mb, e la sua architettura è a 16 Bit. Execution Unit Bus Interface Unit Funzioni della Execution Unit: Decodifica dei codici operativi delle istruzioni Calcolo degli indirizzi degli operandi Esecuzione delle operazioni specificate dalle istruzioni Componenti della Execution Unit: Unità aritmetica logica (ALU) a 16 bit 8 registri generali a 16 bit registro dei flag a 16 bit Logica di decodifica dei codici operativi Logica di controllo e temporizzazione Funzioni della Bus Ineterface Unit: Prelievo dei codici delle istruzioni da eseguire Accesso alle celle di memoria e alle porte d I/O Traduzione degli indirizzi di memoria Componenti della Bus Interface Unit: Istruction Pointer 4 registri di segmento logica di traduzione degli indirizzi istruction queue di 6 byte (memorizza il codice delle istruzioni prelevate dalla BIU) logica di controllo e temporizzazione Boscolo Jona 4ISC Anno Scolastico 2005/2006 4
6 L architettura Pipeline (Catena di montaggio) La differenza tra una tradizionale architettura e l architettura dell Intel 8086 sta nel fatto che ha 2 unità di controllo, questo perché così facendo la Execution Unit esegue le operazioni, mentre la Bus Interface Unit preleva l operazione successiva da eseguire e la velocità di elaborazione raddoppia. Notiamo quindi che in ogni istante troviamo sempre 2 istruzioni in fase di elaborazione. L elaborazione delle istruzioni comprende 3 fasi: il prelievo, eseguito dalla Bus Interface Unit la decodifica, eseguita dalla Execution Unit l esecuzione, eseguita dalla Execution Unit Questo particolare tipo di architettura è detta architettura Pipeline, in questo caso a 2 stadi. Numero di istruzioni P DE P DE P DE T 2T 3T 4T Tempo di elaborazione L architettura pipeline a n stadi prevede la suddivisione del ciclo di elaborazione delle istruzioni in n fasi, eseguita da un unità specializzata all interno del processore. La velocità di elaborazione diventa quindi V=n/T, dove T è il tempo di esecuzione di un istruzione. 1 fase 2 fase 3 fase n fase T/n T/n T/n T/n Funzionamento dell Istruction queue Istruction queue Codici delle istruzioni da eseguire BIU 6x8 Bit EU Istruzioni Eseguite Boscolo Jona 4ISC Anno Scolastico 2005/2006 5
7 La Funzione di traduzione degli indirizzi Ci sono due diversi modi di specificare la posizione di ciascuna cella della memoria centrale, gli indirizzi fisici e quelli logici. Indirizzi Fisici: Codici binari di 20 cifre generati dal microprocessore per accedere a ciascuna cella della memoria centrale 0 (IF) Indirizzi Logici: Coppie di codici binari di 16 cifre specificati dalle istruzioni del linguaggio macchina del microprocessore IL = (segment,offset) 0 (segment) (offset) Calcolo dell indirizzo fisico di un indirizzo logico (IF) 2 = [(segment) 2 *16+(offset) 2 ]mod 2 20 esempio: IL = [(01FA) 16 ;(F00B) 16 ] 01FA0+ F00B= (10FAB) 16 IF = (10FAB) 16 Calcolo degli indirizzi logici di un indirizzo fisico Il numero degli indirizzi logici è di 2 16 *2 16 e quindi di 2 32 Il numero degli indirizzi fisici è di 2 20 Notiamo quindi come ad ogni indirizzo fisico corrispondano 4096 indirizzi logici 2 32 /2 20 =2 12 Per k=1,2, Segment K = (Segment K) mod 2 16 Offset K = (Offset + 16K) mod 2 16 L indirizzo Logico Normalizzato L indirizzo logico normalizzato è un indirizzo logico la cui parte offset è minore di 16 Segment = IF div 16 Offset = IF mod 16 Boscolo Jona 4ISC Anno Scolastico 2005/2006 6
8 I registri di segmento sono: CS: Code Segment Register DS: Data Segment Register ES: Extra Segment Register SS: Stack Segment Register I Registri di Segmento dell Intel 8086 Code Segment Register: Specifica la parte segment degli indirizzi logici delle celle di memoria che contengono i codici delle istruzioni da eseguire. Indirizzo logico della prossima istruzione da eseguire: Segment = CS Offset = IP IF = [CS*16 + IP] mod 2 20 Data Segment Register: Specifica la parte segment dell indirizzo logico delle celle di memoria che contengono gli operandi delle istruzioni da eseguire Indirizzo fisico di un operando: IF = (DS*16+Offset) mod 2 20 Extra Segment Register: Specifica la parte segment dell indirizzo logico delle celle di memoria che contengono gli operandi delle istruzioni da eseguire Stack Segment Register: Specifica la parte segment dell indirizzo logico delle celle di memoria che contengono gli elementi dello stack del programma Lo stack si trova nella memoria centrale a partire dalla cella d indirizzo fisico SS*16 La sua capacità Massima 64 Kbyte L ultimo indirizzo logico è (SS;SP) dove SP è il registro generale dell execution unit IF = (SS*16+SP) mod 2 20 SS*16 IF SS* esempio: IL = [(FA000) 16 :(FFFF) 16 ] FA000+ FFFF= (109FFF) 16 IF = (109FFF) 16 mod 2 20 = (08FFF) 10 Boscolo Jona 4ISC Anno Scolastico 2005/2006 7
9 Il Segmento del Codice CS*16 Codice delle istruzioni 64Kb CS* Il Segmento dei Dati DS*16 Codice degli operandi 64Kb DS* Il Segmento Extra ES*16 Codice degli operandi 64Kb ES* Il Segmento dello stack SS*16 SS*16+SP SS* Area Libera TOS BOS 64Kb SP=0 SP-1 = (FFFF)16 Bottom Of Stack Stack overflow Boscolo Jona 4ISC Anno Scolastico 2005/2006 8
10 Mappa della memoria fisica utilizzata da un programma: (00000) 16 CS*16 CODICE Non accessibili alle istruzioni del programma 64Kb DS*16 ES*16 DATI EXTRA 64Kb 64Kb 256 Kb SS*16 (FFFFF) 16 STACK 64Kb Modello tiny ES*16=DS*16=CS*16=SS*16 CODICE DATI EXTRA STACK 64Kb Boscolo Jona 4ISC Anno Scolastico 2005/2006 9
11 I registri generali dell intel 8086 Sigla Nome Completo AX Accumulatore BX Base CX Contatore DX Dati SP Stack Pointer BP Base Pointer SI Source Index DI Destination Index I primi 4 registri (AX,BX,CX,DX) sono divisi in 2 parti: i primi 8 bit sono chiamati rispettivamente AL,BL,CL,DL; gli ultimi 8 bit sono chiamati rispettivamente AH,BH,CH,DH. Da ora indicheremo con il simbolo R 16 i registri AX BX CX DX SP BP SI DI Mentre indicheremo con il simbolo R 8 i registri AL AH BL BH CL CH DL DH Boscolo Jona 4ISC Anno Scolastico 2005/
12 Il Linguaggio Macchina dell Intel 8086 Questo microprocessore possiede 117 nomi mnemonici L istruzione Move Questa istruzione fa parte della categoria di trasferimento. Svolge la funzione di copiare il contenuto di un registro o di una cella di memoria in un altro registro o in un'altra cella di memoria. Operazione: Dest = Sorg Sintassi: [ RS: ] mov Dest,Sorg Dove Dest è l operando di destinazione dell istruzione e Sorg è l operando sorgente. [ RS: ] indica invece un registro di segmento, è cioè RS = CS DS ES SS Dest = R 8 R 16 RS [ BYTE ]m [ WORD ]m Sorg = R 8 R 16 RS [ BYTE ]m [ WORD ]m Cost Dove [ BYTE ]m indica una cella di memoria di 8 bit, mente [ WORD ]m indica una cella di memoria di 16 bit. Il meta simbolo Cost invece, rappresenta una costante numerica di al massimo 4 cifre esadecimali. Regole per l utilizzo del comando move : 1. i due operandi devono avere la stessa lunghezza; 2. i due operandi non possono rappresentare contemporaneamente una cella di memoria; 3. se la destinazione è un registro di segmento la sorgente non può essere una costante. Combinazioni di operandi possibili Dest Sorg Esempio Operazione R 8 R 8 mov AL,AH AL=AH R 8 [ BYTE ]m mov AL,byte [01FA] AL = byte[ds:01fa] R 8 cost mov AL,0FFAB AL = (AB) 16 R 16 R 16 mov AX,BX AX = BX R 16 RS mov AX,ES AX = ES R 16 [ WORD ]m mov AX,word[01FA] AX = word[ds:01fa] R 16 cost mov BX,01FA BX = (01FA) 16 RS R 16 mov ES,AX ES = AX RS [ WORD ]m mov SS,[01FA] SS = word[ds:01fa] [ BYTE ]m R 8 mov [01FA],BL Byte[DS:01FA] = BL [ BYTE ]m cost mov [01FA],0 Byte[DS:01FA] = 0 [ WORD ]m R16 mov word[01fa],ax Word[DS:01FA] = AX [ WORD ]m RS mov [01FA],ES Word[DS:01FA] = ES Boscolo Jona 4ISC Anno Scolastico 2005/
13 Sintassi: [ RS: ] nome Dest,Sorg Le istruzioni aritmetico logiche a due operandi Dest = R 8 R 16 [ BYTE ]m [ WORD ]m Sorg = R 8 R 16 [ BYTE ]m [ WORD ]m Cost Regole per l utilizzo delle istruzioni aritmetico logiche: 1 i due operandi devono avere la stessa lunghezza; 2 i due operandi non possono rappresentare contemporaneamente una cella di memoria; L istruzione Add Svolge l addizione binaria tra due operandi Nome mnemonico: add Operazione: Dest = (Dest+Sorg) mod 2 n n=8 16 CF = (Dest+Sorg) div 2 n n=8 16 ZF=1 se Dest = 0 ZF=0 se Dest 0 L istruzione Add With Carry Nome mnemonico: adc Operazione: Dest = (Dest+Sorg+CF) mod 2 n n=8 16 CF = (Dest+Sorg+CF) div 2 n n=8 16 ZF=1 se Dest = 0 ZF=0 se Dest 0 L istruzione Subtract Nome mnemonico: subb Operazione: Dest = (Dest-Sorg) mod 2 n n=8 16 CF = (Dest-Sorg) div 2 n n=8 16 ZF=1 se Dest = 0 ZF=0 se Dest 0 L istruzione Subtract With Borrow Nome mnemonico: sbb Operazione: Dest = (Dest-Sorg-CF) mod 2 n n=8 16 CF = (Dest-Sorg-CF) div 2 n n=8 16 ZF=1 se Dest = 0 ZF=0 se Dest 0 Boscolo Jona 4ISC Anno Scolastico 2005/
14 L istruzione Compare Nome mnemonico: cmp Operazione: CF = (Dest-Sorg) div 2 n n=8 16 ZF=1 Se (Dest-Sorg) mod 2 n =0 ZF=0 Se (Dest-Sorg) mod 2 n 0 L istruzione AND Nome mnemonico: and Operazione: Copia nell operando di destinazione il prodotto logico bit a bit dei codici contenuti nei due operandi ZF=1 Se Dest=0 ZF=0 Se Dest 0 Dest = Dest and Sorg L istruzione OR Nome mnemonico: or Operazione: Copia nell operando di destinazione la somma logica bit a bit dei codici contenuti nei due operandi ZF=1 Se Dest=0 ZF=0 Se Dest 0 Dest = Dest or Sorg L istruzione Exclusive Or Nome mnemonico: xor Operazione: Copia nell operando di destinazione la somma esclusiva bit a bit dei codici contenuti nei due operandi ZF=1 Se Dest = 0 ZF=0 Se Dest 0 Dest = Dest xor Sorg Boscolo Jona 4ISC Anno Scolastico 2005/
15 L istruzione Test Nome mnemonico: test Operazione: Equivale ad un istruzione AND ma non modifica l operando di destinazione ZF=1 Se Ris=0 ZF=0 Se Ris 0 Ris = Dest and Sorg Esempio: Dove: test AL,40 AL = (a 7,a 6,a 5,a 4,a 3,a 2,a 1,a 0 ) 2 40 = ( ) 2 Ris = (0,a 6,000000) 2 Da cui capiamo che: ZF = a 6 Boscolo Jona 4ISC Anno Scolastico 2005/
16 Sintassi: [ RS: ] nome Dest Dest = R 8 R 16 [ BYTE ]m [ WORD ]m Le istruzioni aritmetico logiche a un operando L istruzione Multiply Nome mnemonico: mul Operazione: se Dest = R 8 byte m AX = AL * Dest se Dest = R 16 word m [DX,AX] = AX * Dest L istruzione Divide Nome mnemonico: div Operazione: se Dest = R 8 byte m AL = AX div Dest AH=AX mod Dest se Dest = R 16 word m AX = [DX,AX] div Dest DX = [DX,AX] mod Dest L istruzione Increment Nome mnemonico: inc Operazione: Dest = Dest + 1 Se Dest = 0 Se Dest 0 ZF=1 ZF=0 L istruzione Decrement Nome mnemonico: dec Operazione: Dest = Dest - 1 Se Dest = 0 Se Dest 0 ZF=1 ZF=0 L istruzione NOT Nome Mnemonico : not Operazione : Negazione Bit a Bit Per i = 0,1,..N-1 Dest i = Not Dest i (N=8 16) Boscolo Jona 4ISC Anno Scolastico 2005/
17 Le istruzioni di Salto Sintassi: nome cost Dove cost è una costante esadecimale di al massimo 4 cifre Operazione: Se condizione di salto = vero Allora IP=Cost Nome Condizione di salto JMP VERA JC CF=1 JNC CF=0 JZ ZF=1 JNZ ZF=0 Sinonimi Nome Sinonimo Utilizzo JC JB Sottrazioni JNC JNB JZ JE Compare JNZ JNE Combinazioni Nome Condizione di salto JBE CF=1 o ZF=1 JA CF=0 e ZF=0 Esempio1: CMP Dest,Sorg JA Cost Esegue il salto quando la Dest > Sorg Esempio2: CMP Dest,sorg JBE Cost Esegue il salto quando la Dest Sorg Boscolo Jona 4ISC Anno Scolastico 2005/
18 Istruzioni di chiamata/rientro da una procedura Chiamata ad una procedura: Sintassi: call cost Operazioni: SP = SP-2 word[ss:sp] = IP IP = (cost) 16 Ritorno da una procedura: Sintassi: ret Operazioni: IP = word[ss:sp] SP = SP+2 Utilizzo dello Stack di sistema L istruzione push Sintassi: [ RS ] push sorg Operazioni: SP = SP-2 word[ss:sp] = sorg sorg = R16 RS [ word ]m L istruzione pop Sintassi: [ RS ] pop dest Operazioni: dest = word[ss:sp] SP = SP+2 dest = R16 RS [ word ]m Boscolo Jona 4ISC Anno Scolastico 2005/
19 L istruzione Interrupt Sintassi: Int cost 0 (cost) Operazioni: push(flags) push (CS) push(ip) IP = word [n*4] CS = word [n*4+2] n è il valore della costante in esadecimale n = (cost) 16 (cost) 16 viene detta codice dell interruzione La corrispondente routine del sistema operativo viene dette routine di servizio dell interruzione 1024 byte della memoria centrale vengono riservati per la tabella dei vettori di interruzione dove vengono memorizzati gli indirizzi delle routine di servizio delle interruzioni. La tabella contiene al massimo 256 vettori, cioè indirizzi logici di 4 byte ciascuno. (00000) 16 (00004) 16 offset segment offset segment Vettore di ISR0 Vettore di ISR1 n*4 offset segment Vettore di ISRn (1024-4) 10 offset segment Vettore di ISR255 Per esempio l istruzione int 21 cede il controllo al sistema operativo che controlla il contenuto del registro AH, che se contiene il valore 4C termina il programma. Sintassi: I RET Operazioni: pop(ip) pop(cs) pop(flags) L istruzione Interrupt Return Boscolo Jona 4ISC Anno Scolastico 2005/
20 I metodi di indirizzamento L Intel 8086 permette di fare riferimento nel campo degli operandi delle istruzioni ad una cella di memoria in diversi modi detti metodi d indirizzamento. Metodo m= Offset = *Segment = Diretto [cost] (cost)16 DS [RB] RB DS se RB=BX SS se RB=BP Indiretto [RI] [RB+RI] RI RB+RI DS DS se RB=BX SS se RB=BP Relativo [RB±cost] RB±(cost) 16 DS se RB=BX SS se RB=BP Diretto Indicizzato [RI] ±cost RI±(cost) 16 DS Relativo Indicizzato [RB+RI±cost] RB+RI±(cost) 16 DS se RB=BX SS se RB=BP Dove: [RB] = BX BP [RI] = SI DI Registro Base Registro Indice NOTA* A meno che il registro di segmento non venga specificato esplicitamente prima del nome dell istruzione Boscolo Jona 4ISC Anno Scolastico 2005/
21 Le interruzioni Le interruzioni sono un meccanismo che permettere ad un computer di eseguire delle procedure appena si verificano dei particolari eventi che richiedono attenzione immediata, ad esempio lo spostamento del mouse, l arrivo di dati da una porta d ingresso o la fine della lettura di un settore di un disco. Nel processore Intel 8086 esistono vari tipi di interruzioni: le interruzioni software, causate da una particolare istruzione del linguaggio macchina; le interruzioni hardware, causa da un componente o da un dispositivo dell unitа centrale. Le interruzioni hardware si dividono in: interruzioni hardware interne, causate da un componente interno al processore; interruzioni hardware esterne, causate da un dispositivo esterno al processore. A loro volta le interruzioni hardware interne si divino in: interruzioni hardware interne per errore di divisione, causate dall esecuzione di un istruzione di divisione quando il quoziente di una divisione non e rappresentabile nell operando di destinazione oppure quando il divisore e uguale a zero; Interruzioni hardware interne per esecuzione passo passo, causate dalla fine dell esecuzione di ogni istruzione, ma solo se prima dell inizio dell esecuzione di tale istruzione il flag TRAP vale 1 (il flag TRAP corrisponde all ottavo bit del registro dei flag. Le interruzioni hardware esterne si dividono invece in: Interruzioni hardware esterne mascherabili, che si verificano se il segnale presente sulla linea di controllo INTR (interrupt request) e a livello alto e se il flag INTERRUPT (IF) del processore vale 1. Questo tipo di interruzioni possono essere disabilitate temporaneamente in modo che il processore le possa ignorare almeno per un certo periodo; Interruzioni hardware esterne non mascherabili, che si verificano quando il segnale presente su una particolare linea di controllo del bus di sistema, la liena NMI (not mascherable interrupt), commuta a livello alto. Questo tipo di interruzioni non possono essere disabilitate e quindi quando si verificano il processore verrà sempre interrotto. Boscolo Jona 4ISC Anno Scolastico 2005/
22 Istruzioni di controllo Le istruzioni di controllo sono particolari istruzioni che permettono di modificare il valore del flag INTERRUPT. L istruzione Set Interrupt Flag Sintassi: STI Operazione: IF=1 L istruzione Set Interrupt Flag Sintassi: CLI Operazioni: IT=0 Il ciclo d interpretazione delle istruzioni Inizio prelievo decodifica esecuzione NO interruzione SI sequenza d interruzione Le interruzioni hanno una priorità che è ordinata in base al loro codice d interruzione. L interruzione con priorità massima è l interruzioni con codice 0, mentre quella di minima priorità è l interruzioni con codice 255. Sequenza d interruzione 1. push(flags) 2. push(cs) 3. push(ip) 4. IF=0 e TF=0 5. IP = WORD[n*4] 6. CS = WORD [n*4+2] Dove n è il codice dell interruzione a maggiore priorità. Boscolo Jona 4ISC Anno Scolastico 2005/
23 Tipi di interruzione Codice Tipi di interruzione 0 Interruzioni hardware interne per errore di divisione 1 Interruzioni hardware interne per modalità di esecuzione passo passo 2 Interruzioni hardware esterne non mascherabili Gli altri codici possono essere usati per le interruzioni interne mascherabili e per interruzioni software. Il codice delle interruzioni hardware esterne mascherabili viene inviato al microprocessore dal dispositivo che ha emesso tale richiesta d interruzione attraverso le 8 linee dati meno significative del bus di sistema. Sequenze d interruzione relativa alle interruzioni hardware esterne non mascherabili 1. push(flags) 2. push(cs) 3. push(ip) 4. IF=0 ; TF=0 5. invia due impulsi negativi sulla terza linea di controllo INTA, che di solito si trova a livello alto, e legge il codice delle interruzioni dalle 8 linee meno significative del bus di sistema; con il primo informa il dispositivo che il microprocessore ha interrotto l elaborazione in corso, e con il secondo il dispositivo invia il codice dell interruzione. 6. IP = word[n*4] 7. CS = word[n*4+2] Utilizzo dell interruzioni hardware interne passo passo Questo programma è composto di due procedure, la procedura principale e da una routine di gestione delle interruzioni con codice 1. inizio inizio Inizializza le strutture dati utilizzate Conteggio = conteggio-1 Blocco vuoto Interrupt return no Conteggio 0 si fine loop Boscolo Jona 4ISC Anno Scolastico 2005/
24 dosseg : informa l assemblatore che il programma deve essere eseguito in modalità DOS.model : specifica all assemblatore quale modello di memoria deve essere utilizzato..data : specifica l inizio della sezione dei dati. dw : define word, definisce una cella di memoria di tipo word, alla sua sinistra si mette un nome simbolico che rappresenta la cella di memoria.code : definisce l inizio della sezione del codice..org : origing, è seguito dalla costante in esadecimale, e specifica l indirizzo della prima istruzione del programma. Set Interrupt vector È un servizio del sistema operativo DOS Numero 25h che si richiama con l interruzione 21h ponendo: ah = 25h al = codice di interruzione dx = parte offset del nuovo indirizzo della routine di servizio dell interruzione ds = parte segment L istruzione PUSH FLAGS Nome mnemonico: pushf Operazione: pushf(flags) L istruzione POP FLAGS Nome mnemonico: popf Operazione: popf(flags) Boscolo Jona 4ISC Anno Scolastico 2005/
25 Il programma Debug del DOS Permette di provare ad eseguire un altro programma in modalità controllata, per esempio eseguendo un istruzione X volte. Inoltre permette di accedere al contenuto di tutti i registri del processore e delle celle della memoria centrale. Permette di copiare nella memoria centrale il contenuto di uno o più blocchi o settori di un unità disco, o di salvare su disco il contenuto di un area di memoria centrale. In fine permette di assemblare una sequenza di istruzioni scritta in linguaggio macchina e di salvare il codice macchina in memoria centrale. E anche capace di disassemblare il codice macchina di sequenze di istruzioni contenute in memoria centrale. Boscolo Jona 4ISC Anno Scolastico 2005/
26 I Sistemi Operativi Boscolo Jona 4ISC Anno Scolastico 2005/
27 L architettura logica dei sistemi d elaborazione I sistemi d elaborazione sono classificati in base al livello di astrazione relativo alle funzioni che svolgono. Dal più basso livello di astrazione al più alto troviamo: La piattaforma hardware, cioè l insieme dei componenti hardware, (processore, memoria centrale, unità periferiche ecc.) che comunica agli altri componenti per mezzo delle istruzioni del linguaggio macchina; Il Kernel, cioè il nucleo del sistema operativo, un programma che ha il compito di estendere l insieme delle istruzioni del linguaggio macchina con una serie di servizi d accesso e gestione delle varie risorse di sistema; Le procedure di libreria di sistema che utilizzano delle funzioni fornite da altri programmi detti interfaccia dei programmi applicativi. Queste interfacce sono chiamate API, e sono l insieme di funzioni di libreria messe a disposizione dal sistema di elaborazione ai programmi scritti nei linguaggi ad alto livello. I programmi che l utente vuole eseguire, e si dividono in: programmi applicativi, che risolvono i problemi degli utenti, e programmi di sistema, che gestiscono le risorse di sistema. Gli utenti interagiscono con l intero sistema di elaborazioni attraverso l interfaccia utente. Alla luce di quanto detto sopra un sistema operativo è quindi una collezioni di programmi che svolgono il compito di gestire tutte le risorse di un sistema di elaborazione, permettendo a tutti gli altri programmi di accedervi in modo semplice, efficiente ed affidabile. Gli obbiettivi di un sistema operativo Gli obbiettivi di un sistema operativo sono: La semplicità d utilizzo del sistema da parte degli utenti e dei loro programmi, che si può ottenere mettendo a disposizione degli utenti e dei loro programmi delle interfacce di livello adeguato, come ad esempio le API, interfacce con i programmi applicativi orientati agli oggetti, o le interfacce utente grafiche, tra le quali ricordiamo quelle a finestre ed icone, quelle a linea di comando, e quelle a menù; L efficienza nell utilizzo delle varie risorse del sistema, che si può ottenere attraverso le tecniche di gestione delle risorse, come la multiprogrammazione, la memoria virtuale e lo spooling; L affidabilità del funzionamento del sistema nel suo complesso, che si può ottenere applicando delle particolari tecniche di protezione delle risorse del processore, della memoria e delle informazioni. Boscolo Jona 4ISC Anno Scolastico 2005/
28 La multiprogrammazione Questa particolare tecnica di gestione delle varie risorse di sistema permette di eseguire più programmi contemporaneamente, questo ha vari vantaggi, tra i quali: l aumento dell utilizzo di tutte le risorse dell unità centrale, e la possibilità da parte dell utente di svolgere più lavori contemporaneamente. Nella multiprogrammazione, dopo il caricamento del kernel, viene caricato in memoria centrale il codice macchina di più programmi contemporaneamente, così da poterne eseguire in ogni momento uno qualsiasi. Il numero di programmi che vengono eseguiti contemporaneamente è anche detto grado di multiprogrammazione. Vediamo ora cos è e come possiamo calcolare il coefficiente di utilizzo del processore. Per il nostro esempio utilizzeremo una generica funzione per la lettura di un record da disco. Inizio Apri file EOF no Leggi record successivo si Chiudi file Elabora il record letto (presumiamo 1000 istruzioni) Il tempo impiegato per leggere un file da disco è di 10 msec Supponendo che la velocità d elaborazione dell unità centrale sia di I/s, facendo il rapporto tra il numero di istruzioni del programma e la velocità di elaborazione dell unità centrale otteniamo il tempo di utilizzo del processore ISTR = 10 µsec 100 MIPS Calcoliamo ora il coefficiente di utilizzo del processore, cioè il valor medio del rapporto tra il tempo di utilizzo del processore e il tempo complessivamente trascorso per eseguire un programma. Questo rapporto indica quanto il processore viene effettivamente utilizzato. C = 10 µsec = msec C%=0,1% Notiamo quindi come sia basso il coefficiente d utilizzo del processore quando si esegue un solo programma per volta. Boscolo Jona 4ISC Anno Scolastico 2005/
29 Il processo d esecuzione di un programma Diagramma delle transizioni di stato dei processi terminazione In corso Attesa di un particolare evento bloccato Il processo finisce di eseguire il programma Scadenza del Time Slice assegnatogli all inizio della schedulazione (assegnazione) Si verifica l evento del quale ero in attesa pronto Lo stato di pronto è il primo stato di ogni processo, e il passaggio da questo stato allo stato In Corso è detto schedulazione del processo. Servizi del sistema operativo per la gestione dei processi Creazione di un nuovo processo Permette di creare un nuovo processo di esecuzione. Il processo che richiede il servizio è detto processo padre e il nuovo processo è detto processo figlio. Questo servizio restituisce al processo padre un numero che identifica univocamente il nuovo processo creato. Il primo processo, creato dopo il caricamento del sistema operativo dal kernel, è detto processo iniziale. Terminazione del processo La terminazione di un processo deve essere richiesta dal processo che vuole essere terminato. Attesa della terminazione L attesa di terminazione di un processo di esecuzione di un programma può venir richiesta solo dal processo padre, che potrebbe però avere più di un figlio, e quindi richiede il numero di identificazione del processo figlio, che restituisce al padre anche la causa della terminazione. Se il processo figlio non ha ancora richiesto la terminazione il codice di identificazione non è disponibile, il processo padre viene quindi messo in stato di blocco finché il figlio richiede la terminazione, che restituisce al padre il codice di identificazione. Distruzione di un processo Richiede ad un processo di eliminare un altro processo. Boscolo Jona 4ISC Anno Scolastico 2005/
30 Il descrittore di un processo Per ogni processo che viene creato il sistema operativo mantiene tutte le informazioni relative ad un processo di esecuzione del programma in una particolare struttura dati detta descrittore del processo. Le informazione contenute nel descrittore del processo sono: Il numero di identificazione del processo; Il numero di identificazione del processo padre; Lo stato di avanzamento in cui si trova il processo di esecuzione del programma (Pronto/In Corso/Bloccato); Il valore di tutti i registri del processo; L indirizzo iniziale e le dimensioni di tutte le aree di memoria riservate al processo(l indirizzo e la lunghezza del segmento che contiene i dati ecc); Le informazioni relative a tutte le altre risorse di sistema che sono state riservate al processo (file aperti, eventuali terminali e altri dispositivi ecc) I descrittori dei processi sono contenuti in code, un esempio di tali code è la coda dei scrittori dei processi in stato di pronto. Quando viene creato un nuovo processo, viene creato anche il suo descrittore, che viene inserito in questa coda; da qui vengono estratti i descrittori dei processi da porre in stato di esecuzione sul processore. Quando è scaduto il quanto di tempo a disposizione del processo in stato di esecuzione, il descrittore viene inserito di nuovo nella coda dei descrittori dei processi in stato di pronto. Descrittore dei nuovi processi schedulazione Quanto di tempo scaduto processi Attesa di un evento Coda dei descrittori dei processi bloccati Verificarsi di un evento Ci sono diverse tecniche di schedulazione: FIFO Round Rubin A classi di priorità Un esempio di coda di tipo FIFO o Round Rubin è la coda dei descrittori dei processi in stato di pronto. Tecnica di schedulazione Vantaggi Svantaggi FIFO Efficienza Affidabilità Classi di priorità Affidabilità Efficienza Round-Robin Affidabilità/Efficienza Affidabilità/Efficienza Boscolo Jona 4ISC Anno Scolastico 2005/
31 I processi del dos: terminazione esecuzione Creazione del processo figlio (EXEC) bloccato creazione Terminazione del processo figlio I processi in Unix: esecuzione Wait (P.I.D) bloccato Schedulazione pronto Terminazione processo P.I.D Definizioni: Processo: attività di esecuzione di un programma Multiprogrammazione: tecnica per eseguire più programmi contemporaneamente Thread: attività di esecuzione di una procedura di un programma Multithreading: tecnica utilizzata per eseguire più procedure uno stesso programma contemporaneamente. Stati di avanzamento di thread creazione pronto schedulazione esecuzione Rilascio del processo agli altri thread (doevents) Verifica dell evento atteso Attesa di un particolare evento bloccato Boscolo Jona 4ISC Anno Scolastico 2005/
32 ESERCIZI Boscolo Jona 4ISC Anno Scolastico 2005/
33 ESERCIZI SVOLTI Esercizio1: Azzera la cella (FFFFF) 16 Conversione: Segment = (FFFFF) 16 div 16 = (FFFF) 16 Offset = (FFFFF) 16 mod 16 = (0F) 16 BYTE [(FFFFF) 16 ]=0 ovvero BYTE[(FFFF) 16 :(F) 16 ]=0 MOV AX,Segment MOV AX,0FFFF MOV RS,AX traduzione assembly MOV DS,AX MOV BYTE[Offset] MOV BYTE[0F],0 Esercizio2: Scambiare i contenuti delle celle di indirizzo fisico 1F00A e 10A50 1F00A Indirizzo fisico = 1F00A Indirizzo logico = (1000:F00A) 10A50 Indirizzo fisico = 10A50 Indirizzo logico = (1000:0A50) mov AX,1000 mov DS,AX mov DL,[0F00A] mov DH,[A050] mov [0F00A],DH mov [0A50],DL Esercizio3: azzerare il registro AX se IF00A>10A50 mov DX,1000 mov DS,DX mov BL,[0F00A] cmp BL,[0A50] jc continua jz continua mov AX,0 continua: INT3 Boscolo Jona 4ISC Anno Scolastico 2005/
34 Esercizio4: Azzerare tutte le celle di memoria il cui indirizzo logico ha parte offset compreso tra (100) 16 e (200) 16 ciclo: mov BX,100 mov byte[bx],0 inc BX cmp BX,201 jne ciclo Esercizio5: AX=BL*CL mov AX,0 ; AX=0 ciclo add AL,BL ; AL=AL+BL adc AH,0 ; AH=AH+CF sub CL,1 ; CL=CL-1 jnz ciclo ; se CL 0 torna al ciclo int 3 Boscolo Jona 4ISC Anno Scolastico 2005/
35 Esercizio6:Somma due numeri binari di 32 cifre il cui codice è contenuto nella memoria centrale S=(a+b) mod 2 32 a = WORD [(10000) 16 ] a = WORD [(10001) 16 ] b = WORD [(20000) 16 ] b = WORD [(20002) 16 ] s = WORD [(30000) 16 ] s = WORD [(30003) 16 ] a 7 a a 15 a a 23 a a 31 a 24 IF a = (10000) 16 IL a = [(1000) 16 : (0) 16 ] IF b = (20000) 16 IL b = [(2000) 16 : (0) 16 ] IFs = (30000) 16 IL s = [(3000) 16 : (0) 16 ] MOV AX,1000 ; AX=Segment MOV DS,AX ; DS=AX MOV BX, WORD[0] MOV AX,2000 ; AX=Segment MOV ES,AX ; BX=AX ADD BX,WORD[0] ; BX=BX+WORD[ES:0] MOV AX,3000 MOV ES,AX MOV WORD[0],BX ; S = BX = A B MOV AX,1000 MOV DS,AX MOV BX, WORD[2] MOV AX,2000 MOV ES,AX ADC BX,WORD[2] MOV AX,3000 MOV ES,AX MOV WORD[2],BX Boscolo Jona 4ISC Anno Scolastico 2005/
36 Esercizio7 : Copiare il contenuto del segmento di indirizzo fisico iniziale DS*16 e lunghezza uguale a CX byte nell area di memoria ES*16 Inizio: mov BX,0 Ciclo: mov AL,byte[BX] ES mov byte[bx],al inc BX dec CX jne Ciclo ret Esercizio8: Compattare la stringa togliendo gli spazi vuoti Inizio: mov SI,0 mov DI,0 Ciclo: cmp byte[si],20 je incsi mov AL,byte[SI] mov byte[di],al cmp byte[di],0 je FINE inc DI incsi: inc SI FINE: Ret Esercizio9: Visualizzare una stringa il cui primo elemento è (DS:SI) Inizio: mov SI,0 ; i=0 Ciclo: cmp byte[si],0 ; Se Stringa[i]=Term allora termina il programma je FINE mov AH,0E ; AH = numero del servizio mov AL,byte[SI] ; AL = Stringa[i] mov BX,0 ; BX = numero di pagina int 10 ; chiama la routine del BIOS relativa ai servizi dello schermo inc SI ; i=i+1 jmp Ciclo FINE: ret Boscolo Jona 4ISC Anno Scolastico 2005/
Architettura degli elaboratori (A)
Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma
DettagliIl microprocessore 8086
1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un
DettagliL Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica
L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni
DettagliI.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086
I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi Elementi di Assembly 8086 1 Assembly 8086 I registri Per poter elaborare le informazioni ricevute dall esterno,
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: 1. motivi didattici: l architettura dei processori
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Anno Accademico 2009-2010 Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo I processori Intel
DettagliIl linguaggio assembly 8086
Il linguaggio assembly 8086 Introduzione Il linguaggio macchina Il linguaggio naturale di un microprocessore è il linguaggio macchina. Nel linguaggio macchina non esistono riferimenti astratti o simbolici
DettagliTutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.
I processori Intel Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086. L'8086 e' un processore a 16 bit quindi i suoi registri potranno
DettagliIstruzioni di modifica della sequenza di elaborazione
Istruzioni di modifica della sequenza di elaborazione Permettono di modificare la sequenza di esecuzione delle istruzioni di un programma, normalmente controllata dal meccanismo automatico di avanzamento
DettagliCenni ad Assembly Intel
Cenni ad Assembly Intel Luca Abeni April 17, 2015 Architerrura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi
DettagliIl linguaggio Assembly della CPU 8086. Il linguaggio Macchina
Il linguaggio Assembly della CPU 8086 Il linguaggio Macchina Fortemente orientato alla macchina Direttamente eseguibile Praticamente illeggibile Utilizzato negli anni 50 70 per sviluppare programmi Attualmente
DettagliCLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO
CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II L ASSEMBLATORE Microsoft MASM MASM Argomenti della lezione Faremo riferimento al linguaggio sorgente accettato dall assemblatore Microsoft MASM nelle versioni successive alla
DettagliArchitettura del Set di Istruzioni (ISA)
Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni
DettagliLa microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1
La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.
DettagliHARDWARE E SOFTWARE DEL µp 8086
HARDWARE E SOFTWARE DEL µp 8086 Dispensa interna Istituto Tecnico Industriale M. Panetti BARI Premessa Un sistema a µp si può pensare costituito da due strutture: una software e l altra hardware. Esse
Dettagliinteroperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,
DettagliCalcolatori Elettronici Parte X: l'assemblatore as88
Anno Accademico 2013/2014 Calcolatori Elettronici Parte X: l'assemblatore as88 Prof. Riccardo Torlone Università Roma Tre L'assemblatore as88 Disponibile presso: CD-ROM allegato al libro di testo del corso
DettagliCaratteristiche di un PC
Caratteristiche di un PC 1 Principali porte presenti sui personal computer PC Una porta è il tramite con la quale i dispositivi (periferiche o Device ) vengono collegati e interagiscono con il personal
DettagliProgrammazione dello Z80
Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo
DettagliL Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi
L Assembler 80x86 Concetti Generali M. Rebaudengo M. Sonza Reorda P. Bernardi Sommario Introduzione Pseudo-Istruzioni Operatori Modi di Indirizzamento Istruzioni Sommario Introduzione Pseudo-Istruzioni
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
DettagliArchitettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro
Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control
DettagliQuinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.
Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere
DettagliLezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014
Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS
DettagliCPU. Maurizio Palesi
CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
DettagliÈ consuetudine classificare le istruzioni macchina in base al numero degli operandi a cui
Testo di rif.to: [Congiu] - 4.1,4.2 (pg. 129 138) 02.a Le istruzioni di macchina Classificazione delle istruzioni Direttive per l assemblatore Classificazione delle istruzioni È consuetudine classificare
DettagliIntroduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
DettagliL architettura di riferimento
Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27
DettagliProgrammazione Assembly Note su Microsoft Assembler
Programmazione Assembly Note su Microsoft Assembler Giacomo Fiumara giacomo.fiumara@unime.it Anno Accademico 2012-2013 1 / 254 Microsoft Assembler Masm32.com installare configurare path perchè contenga
DettagliCAPITOLO 4: BASI DI ASSEMBLY
CAPITOLO 4: BASI DI ASSEMBLY x86 Un giorno a qualcuno venne in mente di creare un processore 8086, che si è poi evoluto ed è diventato il più veloce 80286, meglio conosciuto come 286, che a sua volta ha
DettagliARCHITETTURA DEI CALCOLATORI VOLUME I
Graziano Frosini ARCHITETTURA DEI CALCOLATORI VOLUME I ASSEMBLER E CORRISPONDENZA FRA C++ E ASSEMBLER CON RIFERIMENTO AL PERSONAL COMPUTER E ALL AMBIENTE DI PROGRAMMAZIONE DJGPP Copyright MMIX ARACNE editrice
DettagliArchitettura di un Elaboratore
Architettura di un Elaboratore Fabio Massimo Zanzotto Ricapitoliamo puntate precedenti Cosa abbiamo a disposizione: Concetto di algoritmo (con eventuale parametrizzazione) Rappresentazione dell informazione
DettagliIl processore. Il processore. Il processore. Il processore. Architettura dell elaboratore
Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni
DettagliCALCOLATORI ELETTRONICI
CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1
DettagliLa gestione dell I/O (Cap. 5, Tanenbaum)
La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità
DettagliClasse 3a INF - Esecuzione di un interrupt: ricostruzione delle operazioni al calcolatore con Turbo Debugger
Classe 3a INF - Esecuzione di un interrupt: ricostruzione delle operazioni al calcolatore con Turbo Debugger Turbo debugger è un potente strumento di sviluppo pensato, anni fa, come complemento agli strumenti
DettagliARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI
PROGETTO DELLA CPU MEMORIZZAZIONE DEGLI OPERANDI DOVE SONO MEMORIZZATI GLI OPERANDI NELLA CPU? ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI SCELTE PROGETTUALI: 1. DOVE SONO MEMORIZZATI
DettagliElementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann
Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:
DettagliIntroduzione. Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi:
Appunti di Calcolatori Elettronici Organizzazione dei sistemi di elaborazione Introduzione... 1 La CPU... 2 Ciclo di esecuzione delle istruzioni... 3 Insieme delle istruzioni... 4 Organizzazione della
DettagliHardware di un Computer
Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,
DettagliMASSIMO UBERTINI ASSEMBLER WWW.UBERTINI.IT
MASSIMO UBERTINI ASSEMBLER WWW.UBERTINI.IT ;Nome del programma: inser.asm ;Programmatore: ;Descrizione ;Programma che inserisce un valore nel registro AX. DOSSEG.MODEL SMALL.STACK 200H.DATA.CODE BEGIN:
DettagliPROGRAMMA DI SISTEMI TERZA AET 2014/2015
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
DettagliC. P. U. MEMORIA CENTRALE
C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato
DettagliArchitettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
DettagliIl livello architettura e set di istruzioni
Corso di Informatica 2 Prof. Sciuto Il livello architettura e set di istruzioni Daniele Paolo Scarpazza Dipartimento di Elettronica e Informazione Politecnico di Milano 7 Giugno 2004 Daniele Paolo Scarpazza
DettagliCorso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18
Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing
DettagliAXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000
AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono
DettagliL architettura del calcolatore (Prima parte)
L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto
DettagliIl Processore: i registri
Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono
DettagliUn circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati
Il Livello LogicoDigitale i Blocchi funzionali combinatori Circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati
DettagliAssembler Intel 80x86: Struttura di un programma e Direttive
Assembler Intel 80x86: Struttura di un programma e Direttive Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin 1 Istruzioni e direttive Formato generale dei comandi: [nome] codice operazione
DettagliAssembler 8086/8088: Concetti Generali
L Assembler 8086 Concetti Generali M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Sommario Introduzione Pseudo-Istruzioni Operatori
DettagliIl calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi
Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da
DettagliLaboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008
Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono
DettagliParte II.2 Elaboratore
Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti
DettagliArchitettura di un calcolatore: introduzione
Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
Dettagliintroduzione I MICROCONTROLLORI
introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II ARCHITETTURA DEL PROCESSORE 886 PARTE (II) Argomenti della lezione Architettura del processore 886 parte (II) Stack Stack I/O Lo stack Lo stack L'886 prevede alcune strutture
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
Dettagli[http://www.di.univaq.it/muccini/labarch]
[http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 3: Introduzione a SPIM
DettagliLaboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliIspirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).
RCHITETTUR DI UN ELORTORE Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). MCCHIN DI VON NEUMNN UNITÀ FUNZIONLI fondamentali Processore (CPU) Memoria
DettagliCalcolo numerico e programmazione Architettura dei calcolatori
Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:
DettagliVon Neumann. John Von Neumann (1903-1957)
Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su
DettagliIl sottosistema di I/O. Input Output digitale
Il sottosistema di I/O Il sottosistema di I/O consente la comunicazione fra il calcolatore ed il mondo esterno. Fanno parte del sottosistema i dispositivi (Unità di I/O) per la comunicazione uomo/macchina
DettagliSET/CLEAR LOAD DATA FROM STRING
SET/CLEAR STD CLD AZIONE: Imposta ad 1 (STD) o a zero (CLD) il valore del flag DF. Sono istruzioni senza parametri. Vanno sempre messi!! FLAG di cui viene modificato il contenuto: Nessuno (a parte DF).
DettagliMODELLI DI MEMORIA e CALL
Corso di Archite?ura degli Elaboratori Modulo di Assembly MODELLI DI MEMORIA e CALL Bruno Iafelice University of Bologna iafelice at cs(dot)unibo(dot)it 1 ArgomenC Modelli di memoria per 8088 Chiamata
DettagliCalcolatori Elettronici
Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con
DettagliLa macchina programmata Instruction Set Architecture (1)
Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un
DettagliProgrammazione modulare 2012-2013
Programmazione modulare 2012-2013 Indirizzo: Informatica Abacus Disciplina: SISTEMI DI ELABORAZIONE E TRASMISSIONE DELLE INFORMAZIONI Classe: A e B Docenti: Buscemi Letizia Ore settimanali previste: 5
DettagliSistemi Operativi (modulo di Informatica II) Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliPROGRAMMARE IN ASSEMBLER SU PROCESSORI X86.
PROGRAMMARE IN ASSEMBLER SU PROCESSORI X86. Dopo svariati anni di sperimentazione e apprendimento del linguaggio assembly ho finalmente deciso di pubblicare una pagina web su questo argomento. In modo
DettagliLinguaggio macchina e linguaggio assembler
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Linguaggio macchina e linguaggio assembler 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliEsempio di moltiplicazione come somma e spostamento
Esempio di moltiplicazione come somma e spostamento Implementare una moltiplicazione coinvolge algoritmi di shift e somma Istruzioni di Shift:movimento di bit: ROL Rd ROR Rd LSL Rd LSR ASR Rd Rd 22 x 35
DettagliARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI
PROGETTO DELLA CPU ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI SCELTE PROGETTUALI: 1. DOVE SONO MEMORIZZATI GLI ERANDI NELLA CPU? 2 QUANTI ERANDI SONO CHIAMATI IN MODO ESPLICITO 3. DOVE
DettagliFondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0
Fondamenti Teorici Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Agenda Modello di Von Neumann Algoritmo del Processore Linguaggio Macchina e Linguaggio Assembler Hardware e Software Compilatori
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliLezione n.9. Introduzione al linguaggio macchina
Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo
DettagliCALCOLATORI ELETTRONICI I PRINCIPI DI FUNZIONAMENTO DI UN CALCOLATORE ELETTRONICO
CALCOLATORI ELETTRONICI I PRINCIPI DI FUNZIONAMENTO DI UN CALCOLATORE ELETTRONICO L architettura di un calcolatore Informatica Linguaggi ad alto livello/applicazioni Sistema operativo Assembler ISA Architettura
DettagliCalcolatori Elettronici L-A
1 Calcolatori Elettronici L-A Obiettivo del modulo è lo studio dei seguenti aspetti dell hardware dei calcolatori: l architettura i principi di funzionamento le tecniche di progettazione l impatto dell'architettura
DettagliPowered by: Relators:
Powered by: Hacking Group Como www.hgcomo.org Relators: Beretta Matteo, matteo@hgcomo.org Pizzagalli Diego Ulisse ulisse@hgcomo.org Atmel AVR Studio 4 integra al suo interno un ambiente di programmazione
DettagliINFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO
INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO PROGRAMMA Descrizione funzionale di un calcolatore elementare, COS'E' UN ELETTRONICO HARDWARE SOFTWARE HARDWARE
DettagliSistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni
Motivazione Sistemi operativi Molte attivita in parallelo su un singolo calcolatore Es.: stampa di un documento e scrittura di un altro Il sistema operativo serve a coordinare queste attivita e far comunicare
DettagliGestione della memoria. Paginazione Segmentazione Segmentazione con paginazione
Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base
DettagliCOMPILAZIONE. Tarsformazione di linguaggi
COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File
DettagliUno sguardo al codice chiarificherà i dettagli. La tabella di invio interrupt intmap è definita nel file io.h.
CAPITOLO 9 - ELABORAZIONE DEGLI INTERRUPT L interrupt hardware è un meccanismo potente per fornire il supporto di molti servizi del sistema operativo. Come descritto nel capitolo 2, una richiesta di interrupt
DettagliSTACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET
Lo stack STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack (tradotto talvolta in italiano con pila o catasta) è un'area di memoria privilegiata, dove il microprocessore può salvare
DettagliWINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni
WINDOWS95 1. Avviare Windows95 Avviare Windows95 non è un problema: parte automaticamente all accensione del computer. 2. Barra delle applicazioni 1 La barra delle applicazioni permette di richiamare le
DettagliCorso di Informatica Applicata. Lezione 3. Università degli studi di Cassino
Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39
DettagliSommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
DettagliProcessore PC. Spazio di indirizzamento. la ALU (Arithmetic and Logic Unit) la FPU (Floating Point Unit)
Processore PC Faremo riferimento al cosiddetto processore PC, che rappresenta una schematizzazione dei processori a 32 bit presenti nei Personal Computer. Il processore è costituito da due unità fondamentali:
Dettagli4. Operazioni aritmetiche con i numeri binari
I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:
DettagliI componenti di un Sistema di elaborazione. CPU (central process unit)
I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.
Dettagli