ARCHITETTURA DEI CALCOLATORI VOLUME I

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ARCHITETTURA DEI CALCOLATORI VOLUME I"

Transcript

1 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

2 Copyright MMIX ARACNE editrice S.r.l. via Raffaele Garofalo, 133 A/B Roma (06) ISBN I diritti di traduzione, di memorizzazione elettronica, di riproduzione e di adattamento anche parziale, con qualsiasi mezzo, sono riservati per tutti i Paesi. Non sono assolutamente consentite le fotocopie senza il permesso scritto dell Editore. I edizione: febbraio 2009

3 Indice Prefazione 11 1 Organizzazione software di un semplice calcolatore 1.1 Blocchi funzionali e loro collegamento Calcolatore basato sul processore PCs Spazio di memoria Spazio di I/O Registri del processore PCs Condizioni al reset iniziale Formato istruzioni e modi di indirizzamento del processore PCs Indirizzamento di registro Indirizzamento diretto Indirizzamento indiretto con registro puntatore Indirizzamento modificato Indirizzamento immediato Indirizzamento relativo Modi di indirizzamento per le varie categorie di istruzioni Istruzioni del processore PCs Istruzioni operative Istruzioni di controllo Descrizione delle singole istruzioni Esempi di programmi per il processore PCs Conteggio del numero di bit a Somma degli elementi di un vettore Somma di due vettori elemento per elemento Sottoprogrammi Somma degli elementi di un vettore: parametri nei registri Modello di una semplice interfaccia 38 2 Linguaggio Assembler DJGPP 2.1 Ambiente di programmazione DJGPP Struttura di un programma Assembler Programmi in linguaggio Assembler Utilizzo del comando gxx Rappresentazione di letterali Corpo della sezione dati 50

4 6 Indice 2.5 Corpo della sezione testo Riferimento alle variabili Salto ad altre istruzioni Riferimento alle porte di I/O Inizializzazioni Allineamento Inclusione Espressioni indirizzo Ingresso e uscita dei dati Esempi di programmi Assembler Programma che invia messaggi Programmi sviluppati nel Capitolo Programma che esamina la codifica di un carattere Debugger GDB Breakpoint Modalità di esecuzione di un programma Visualizzazioni 67 3 Rappresentazione di caratteri e numeri 3.1 Rappresentazione di caratteri Rappresentazione delle cifre decimali Espressine dei numeri naturali in una generica base Algoritmo di conversione in base sorgente Algoritmo di conversione in base destinataria Conversioni fra basi potenza e basi radice Dati e risultati naturali nei calcolatori Semplici proprietà dell aritmetica modulare Principali operazioni sui numeri naturali in base due Complementazione a uno Addizione Sottrazione Moltiplicazione Divisione Traslazioni logiche Confronto e test Rappresentazione nei calcolatori dei numeri interi in base due Modulo e segno Complemento a uno Complemento a due Traslazione Intervalli di rappresentabilità Principali operazioni sui numeri interi in base due Addizione e sottrazione Moltiplicazione e divisione Estensione della rappresentazione 92

5 Indice Traslazioni aritmetiche Confronto e test Espressione dei numeri assoluti minore di 1 in una generica base Algoritmo di conversione in base sorgente Algoritmo di conversione in base destinataria Espressione dei numeri reali assoluti in una generica base Algoritmo di conversione in base sorgente Algoritmo di conversione in base destinataria Rappresentazione nei calcolatori dei numeri reali in base due 99 4 ALU del processore PC 4.1 Organizzazione del processore PC Spazi di indirizzamento Registri interni Lunghezza degli operandi Modalità di indirizzamento Codifica delle istruzioni Byte MODE Byte SIB Istruzioni macchina Istruzioni per il trasferimento dei dati Istruzioni per la conversione di tipo Istruzioni aritmetiche Istruzioni logiche Istruzioni per il test e la modifica di un bit Istruzioni di traslazione e rotazione Istruzioni per la modifica dei flag Istruzioni di ingresso/uscita Istruzioni per la manipolazione di stringhe Istruzioni di salto Istruzioni per i sottoprogrammi Istruzioni per il meccanismo di interruzione Istruzioni per il controllo del processore Programmazione Assembler FPU del processore PC 5.1 Unità in virgola mobile del processore PC Registri numerici Registro di stato Registri di controllo Tipi di operandi e modalità di memorizzazione Istruzioni macchina Istruzioni di trasferimento Istruzioni aritmetiche Istruzioni di confronto e test 133

6 8 Indice Istruzioni trascendentali Istruzioni per il caricamento di costanti Istruzioni per il controllo dell unità Gestione delle condizioni Programmazione Assembler della FPU Programma radici Programmazione su più file in Assembler, in C++ e in modo misto 6.1 Programmi Assembler organizzati su più file Esempio di programma Assembler con più file Programmi C++ organizzati su più file Programmazione mista Debugger per programmi su più file Struttura dei programmi di sistema 7.1 Programma assemblatore Assemblatore: prima passata Assemblatore: seconda passata Esempi di assemblaggio File principale File secondario Programma collegatore Esempio di collegamento Programma caricatore Funzioni C++ e sottoprogrammi Assembler 8.1 Funzioni e programmazione mista Ambiente di una istanza di sottoprogramma Ambiente e record di attivazione Modalità di trasmissione dei parametri Istruzioni di interfaccia del chiamante e del chiamato Interfaccia del chiamato Interfaccia del chiamante Esempi Funzioni che restituiscono strutture (o unioni) o classi Riferimenti in C Realizzazione di programmi misti con parametri e variabili locali Nomi di funzioni e operatori C++ e nomi Assembler 9.1 Identificatori di funzioni Nomi semplici predefiniti Nomi semplici definiti dall utente Nomi composti Nomi composti con nomi semplici predefiniti Nomi composti con nomi semplici definiti dall utente 201

7 Indice Nomi simili Identificatori di operatori Numeri reali in C++ e numeri reali in Assembler 10.1 Funzioni con numeri reali Esempio Esempio Esempio Esempio Esempio Operatori con numeri reali Classi C++ e corrispondenti costrutti Assembler 11.1 Classi e oggetti classe Identificatori di funzioni membro Identificatori di operatori membro Record di attivazione di funzioni membro e operatori membro Costruttori Altre funzioni membro Operatori membro Programma riepilogativo claint Costruttore di copia Esercizi risolti 12.1 Premessa Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Appendici 13.1 Identificatori predefiniti di tipo Operatori globali e membro Operatori solo membro Programmi disponibili in Internet 306

8

9 1 Organizzazione software di un semplice calcolatore 1.1 Blocchi funzionali e loro collegamento I calcolatori digitali (o più semplicemente calcolatori) sono macchine complesse in grado di elaborare informazioni in forma codificata (dati). La codifica e- sterna dell informazione fornita alla macchina e restituita dalla macchina consiste, nei casi più semplici, in sequenze di caratteri (lettere, cifre, segni di interpunzione, caratteri speciali), mentre la codifica interna è costituita da sequenze di simboli binari o bit (BInary digit). Ogni carattere esterno viene codificato (in genere con 7 o 8 bit) direttamente da un dispositivo trasduttore di ingresso, tipicamente da una tastiera, mentre un operazione inversa è compiuta da un dispositivo trasduttore di uscita, tipicamente un video o una stampante. Ulteriori conversioni di codifica per informazioni più complesse vengono effettuate mediante opportune elaborazioni. Una classe significativa di informazioni è costituita dai numeri: questi, all interno della macchina, vengono in genere rappresentati in base 2 su un numero prefissato di bit. Se consideriamo i numeri naturali, una configurazione di N bit rappresenta un numero il cui valore è dato dalla somma pesata dei vari bit, dove il bit in posizione i (i = N 1, N 2,..., 0 da sinistra verso destra) ha peso 2 i : con N bit possono quindi essere rappresentati numeri naturali da 0 a 2 N 1. Le azioni elementari che un calcolatore sa eseguire sono in numero abbastanza limitato, e ognuna di esse è rappresentata da un opportuna configurazione di bit o istruzione. Per effettuare una certa elaborazione, dobbiamo quindi fornire al calcolatore sia le quantità su cui operare o dati, sia la sequenza delle istruzioni da eseguire o programma. Il calcolatore esegue le istruzioni

10 14 Capitolo 1 nell ordine in cui gli sono state fornite fino a quando non incontra un istruzione di controllo, la quale produce l alterazione del flusso sequenziale stabilendo il numero d ordine della prossima istruzione da eseguire. A partire da tale istruzione il procedimento prosegue con le stesse modalità. Le istruzioni si dividono pertanto in due grosse categorie, ossia istruzioni operative e istruzioni di controllo. Le istruzioni operative servono a eseguire operazioni sui dati, tipicamente operazioni aritmetiche semplici (addizione, sottrazione, moltiplicazione e divisione) oppure operazioni logiche elementari (AND, OR, NOT bit a bit). Le istruzioni di controllo (o di salto) servono a determinare, in funzione dei risultati ottenuti con le istruzioni operative, il flusso con il quale le varie istruzioni vengono eseguite. L intera circuiteria di cui è composto un calcolatore (hardware) si può pensare logicamente divisa in blocchi (Figura 1.1), ognuno dei quali esegue un certo insieme specifico di funzioni. Rete di interconnessione Interfaccia... Memoria principale Processore Dispositivo Figura 1.1 Schema a blocchi di un semplice calcolatore La memoria principale immagazzina sia i dati che il programma che sono oggetto della elaborazione attuale. Il processore (o unità centrale di elaborazione) provvede a prelevare dalla memoria le istruzioni, una alla volta, e a eseguire le operazioni specificate. Le interfacce hanno lo scopo di gestire i vari dispositivi di ingresso/uscita, in modo da farli apparire al processore come entità più semplici e più standard (i dispositivi possono far parte o meno del calcolatore). Ad alcune interfacce sono collegate delle memorie di massa (tipicamente dischi magnetici), che hanno lo scopo di immagazzinare dati e programmi attualmente non interessati all esecuzione. Il calcolatore preso a riferimento in questo testo si basa sul processore PC (Processore Complesso), un processore schematizzato avente architettura IA32, software compatibile con i processori attualmente presenti nei Personal Compu-

11 Organizzazione software di un semplice calcolatore 15 ter. Vista la rapida evoluzione tecnologica in atto, non è opportuno utilizzare processori effettivamente esistenti, per ovvii problemi di obsolescenza, ma conviene ricorrere a un modello che abbia un tempo di vita maggiore. In questo capitolo, il funzionamento di un calcolatore viene illustrato a livello di linguaggio macchina, cioè con visibilità delle istruzioni e dei dati su cui il calcolatore opera: lo scopo principale è quello di illustrare le funzionalità della macchina, e per motivi di semplicità, il processore PC viene inizialmente descritto in modo estremamente semplificato (processore PCs). Il linguaggio macchina, essendo composto da sequenze di bit, risulta sostanzialmente incomprensibile, per cui faremo ricorso a un linguaggio simbolico in corrispondenza uno a uno con il linguaggio macchina, ma con il pregio di una maggiore leggibilità. 1.2 Calcolatore basato sul processore PCs Nell illustrare il funzionamento di un calcolatore, faremo spesso riferimento a quantità numeriche binarie: per compattare la scrittura useremo la notazione e- sadecimale, che consiste nel raggruppare i bit 4 a 4 e sostituire ogni quadrupla di bit con uno dei simboli 0, 1,..., 9, A, B, C, D, E, F, secondo la seguente corrispondenza: Quadrupla Simbolo Quadrupla Simbolo A B C D E F Il processore PCs possiede un unità logico-aritmetica (detta ALU: Arithmetic and Logic Unit) in grado di elaborare operandi, costituiti da numeri naturali o numeri interi, la cui lunghezza può essere di 8 bit (byte), di 16 bit (parola o word) e di 32 bit (parola lunga, doppia parola o double word). Eventuali operandi di lunghezza maggiore (tipicamente, di 64 bit possono essere trattati suddividendoli in parti. Il processore PCs non possiede, invece, nessuna unità per elaborare operandi costituiti da numeri reali.

12 16 Capitolo 1 Un semplice calcolatore basato sul processore PCs appare al programmatore come illustrato in Figura 1.2, dove sono evidenziati i registri del processore, lo spazio di memoria e lo spazio di I/O ai quali il processore è in grado di accedere FFFF FFFFFFFF Spazio di memoria Spazio di I/O EAX AX (AH, AL) EBX BX (BH, BL) ECX CX (CH, CL) EDX DX (DH, DL) ESI EDI EBP ESP EIP EFLAG Figura 1.2 Semplice calcolatore basato sul processore PCs Spazio di memoria Lo spazio di memoria è una sequenza lineare e contigua di 4G locazioni (G=1024*1024*1024). Ogni locazione ha la capacità di 8 bit ed è individuata mediante un indirizzo di 32 bit. Il processore è in grado di accedere a una singola locazione corrispondente a un byte, a una coppia di locazioni consecutive (doppia locazione) corrispondente a una parola, o a una quadrupla di locazioni

13 Organizzazione software di un semplice calcolatore 17 consecutive (quadrupla locazione) corrispondente a una parola lunga: nel primo caso deve essere specificato l indirizzo della locazione stessa, nel secondo e nel terzo caso l indirizzo della prima delle locazioni interessate (l indirizzo più piccolo), che verrà semplicemente detto indirizzo della doppia locazione o indirizzo della quadrupla locazione. Se una doppia locazione o una quadrupla locazione contengono un numero naturale o un numero intero, la locazione di indirizzo più piccolo contiene la parte (8 bit) meno significativa e le altre le parti via via più significative del numero stesso. Lo spazio di memoria viene riferito durante il prelievo delle istruzioni e durante l esecuzione della maggior parte delle istruzioni operative (per prelevare operandi o memorizzare risultati). In questo spazio viene montata la memoria principale, realizzata in piccola parte con integrati di tipo EPROM (sola lettura: Erasable Programmable Read Only Memory) e in gran parte con integrati di tipo RAM (letura/scrittura: Random Access Memory) Spazio di I/O Lo spazio di ingresso/uscita o spazio di I/O (Input/Output) è una sequenza lineare e contigua di 64K locazioni o porte (K = 1024), ognuna delle quali ha una capacità di 8 bit ed è individuata mediante un indirizzo di 16 bit. In genere un operando occupa nello spazio di I/O una sola porta. Lo spazio di I/O viene riferito durante l esecuzione di particolari istruzioni operative, dette appunto di ingresso/uscita. Questo spazio contiene le interfacce attraverso cui il calcolatore colloquia con il mondo esterno. Una semplice interfaccia sarà descritta nel Paragrafo Registri del processore PCs Il processore possiede due tipi di registri, i registri generali e i registri di stato. Tra i registri generali è compreso il puntatore di pila. Registri generali I registri generali sono 8 da 32 bit, denominati EAX, EBX, ECX, EDX, ESI, EDI, EBP ed ESP, 4 da 16 bit (parti meno significative dei primi 4 registri), denominati AX, BX, CX e DX, e 8 da 8 bit (parti più significative (H) e parti meno significative (L) dei registri da 16 bit), denominati AH, BH, CH, DH, AL, BL, CL e DL. I registri generali vengono utilizzati indifferentemente per memorizzare operandi e contenere indirizzi di memoria: in quest ultimo caso pos-

14 18 Capitolo 1 sono essere utilizzati solo i registri da 32 bit (un indirizzo di memoria è sempre costituito da 32 bit). Registri di stato Questo gruppo di registri comprende il contatore (o puntatore) di istruzioni EIP (Instruction Pointer) e il registro dei flag EFLAG. Il registro EIP contiene l indirizzo della locazione di memoria a partire dalla quale sarà prelevata la prossima istruzione da eseguire: una volta prelevata un istruzione, il suo contenuto viene automaticamente aggiornato in modo da indirizzare l istruzione sequenzialmente successiva. Il contenuto di questo registro viene modificato dalle istruzioni di controllo. Il registro EFLAG (vedi Figura 1.3) contiene (tra l altro), nella parte meno significativa, 4 flag, la cui funzione viene specificata di seguito OF SF ZF CF Figura 1.3 Parte meno significativa del registro EFLAG Carry Flag CF: quando vale 1 indica che durante l esecuzione dell ultima istruzione si è generato un riporto (carry) se l istruzione era di somma, o si è richiesto un prestito (borrow) se l istruzione era di sottrazione: per numeri naturali questa situazione indica che il risultato dell operazione non è rappresentabile. Zero Flag ZF: quando vale 1 indica che l ultima istruzione eseguita ha prodotto un risultato uguale a zero (tutti i bit uguali a 0). Sign Flag SF: quando vale 1 indica che l ultima istruzione eseguita ha prodotto un risultato con il bit più significativo uguale a 1: per numeri interi questa situazione indica che il risultato è negativo. Overflow Flag OF: quando vale 1 indica che durante l esecuzione dell ultima istruzione si è avuto un traboccamento: per numeri interi questa situazione indica che il risultato non è rappresentabile. Registro puntatore di pila Per motivi che risulteranno più chiari in seguito (chiamata e ritorno da sottoprogramma, salvataggio e ripristino di contenuti di registri, eccetera), è molto utile disporre di una pila (o stack), cioè di una porzione di memoria in cui immettere e prelevare dati in accordo alla disciplina LIFO (Last In First Out): il dato che viene prelevato per primo è quello che vi è stato immesso per ultimo.

15 Organizzazione software di un semplice calcolatore 19 La pila viene realizzata utilizzando più locazioni consecutive di memoria, raggruppate in entità informative di lunghezza prefissata (dati), locazioni che vengono riempite a partire da quella di indirizzo maggiore: il registro ESP (Stack Pointer) individua a ogni istante la cima (o top) della pila, cioè il dato inserito per ultimo. Sulla pila si possono effettuare le seguenti 3 azioni (vedi anche la Figura 1.4): inizializzazione: il registro puntatore viene inizializzato con l indirizzo successivo a quello della prima locazione da cui comincia la pila (quella di indirizzo maggiore); immissione (operazione push): il contenuto del registro puntatore viene prima opportunamente decrementato e poi utilizzato come indirizzo per un operazione di scrittura di un dato in memoria; estrazione (operazione pop): il contenuto del registro puntatore viene prima utilizzato come indirizzo per un operazione di lettura di un dato dalla memoria e poi opportunamente incrementato. Nel processore PCs i dati che vengono memorizzati in pila sono lunghi 4 byte (parola lunga): per ogni immissione o estrazione, ESP viene quindi incrementato o decrementato di 4. Dato immesso Dato estratto ESP ESP Valore iniziale ESP Figura 1.4 Operazioni sulla pila La prima operazione dopo l inizializzazione sarà certamente una PUSH. Oltre al registro ESP, anche il registro EBP è dedicato alla gestione della pila, come sarà visto nei capitoli successivi: questi registri, pertanto, pur facen-

16 20 Capitolo 1 do parte dei registri generali, vengono utilizzati per memorizzare indirizzi all interno della pila stessa Condizioni al reset iniziale Il processore è dotato di un apposito piedino per il reset: ogni volta che questo diviene attivo, il processore si porta in uno stato iniziale in cui i registri assumono particolari valori (tipicamente 0). Ne risulta in particolare che l istruzione che viene eseguita per prima è quella che si trova in memoria a partire dalla locazione il cui indirizzo è specificato dal valore iniziale di EIP. 1.3 Formato istruzioni e modi di indirizzamento del processore PCs Ogni istruzione che viene eseguita dal processore specifica da un lato il tipo di operazione da eseguire (codice operativo), e dall altro le modalità per individuare gli operandi su cui compiere le elaborazioni o l indirizzo della prossima istruzione (modalità di indirizzamento). Descriveremo adesso i formati delle istruzioni e le modalità di indirizzamento del processore PCs, introducendo in modo informale un linguaggio simbolico, in corrispondenza biunivoca con il linguaggio macchina. Molte istruzioni operative del processore compiono elaborazioni su due o- perandi, sostituendo uno di essi con il risultato dell operazione effettuata: l operando che alla fine viene sostituito è detto operando destinatario (e il luogo dove si trova è detto destinazione), mentre l altro operando (che rimane inalterato) è detto operando sorgente (e anche il luogo dove si trova è detto sorgente). A livello di linguaggio simbolico un istruzione a due operandi ha il formato: COlun sorgente, destinazione Il campo COlun rappresenta il codice operativo dell istruzione, che specifica anche la lunghezza lun degli operandi: B (o b) significa byte, W (o w) parola e L (o l) parola lunga. I campi sorgente e destinazione individuano, rispettivamente, l operando sorgente e l operando destinatario. Anche le modalità di indirizzamento vengono specificate dal codice operativo: tuttavia, a livello di linguaggio simbolico, queste vengono rese esplicite nei campi sorgente e destinazione.

17 Organizzazione software di un semplice calcolatore 21 Per alcune istruzioni a due operandi, il campo destinazione è omesso: in questi casi le informazioni relative all operando destinatario sono implicite nel codice operativo delle istruzioni stesse. A livello di linguaggio simbolico, un istruzione di tale tipo ha il formato: COlun sorgente Altre istruzioni operative compiono elaborazioni su un solo operando, sostituendolo alla fine con il risultato dell operazione: l operando specificato è quindi l operando destinatario (e il luogo dove si trova è la destinazione). A livello di linguaggio simbolico un istruzione a un operando ha il formato: COlun destinazione Le istruzioni di controllo trasferiscono un nuovo valore nel registro EIP (eventualmente al verificarsi di certe condizioni), dato dalla somma del contenuto di EIP con un numero intero detto spiazzamento (displacement). Esse hanno il formato: COcond EIP + spiazzamento Illustriamo adesso le modalità di indirizzamento previste per il processore PCs Indirizzamento di registro Con questa modalità di indirizzamento, l operando è contenuto in uno dei registri generali da 32 bit, da 16 bit, oppure da 8 bit. I seguenti esempi chiariscono come questo indirizzamento viene indicato a livello di linguaggio simbolico. COL EAX Significato: l operando è di 32 bit e risiede nel registro EAX. COB BL, AL Significato: gli operandi sono di 8 bit: l operando sorgente risiede nel registro BL e l operando destinatario nel registro AL Indirizzamento diretto Questa modalità di indirizzamento si utilizza quando l operando è in memoria. L istruzione contiene un numero naturale di 32 bit, che rappresenta l indirizzo della prima delle locazioni in cui si trova l operando. I seguenti esempi chiariscono come questa modalità di indirizzamento viene indicata a livello di linguaggio simbolico.

18 22 Capitolo 1 COB Significato: l operando è di 8 bit e risiede nella locazione di memoria di indirizzo COW Significato: l operando è di 16 bit e risiede nella doppia locazione di memoria di indirizzo COL EAX, Significato: gli operandi sono di 32 bit: l operando sorgente (individuato mediante l indirizzamento di registro) risiede in EAX; l operando destinatario (individuato mediante l indirizzamento diretto) risiede nella quadrupla locazione di memoria di indirizzo Indirizzamento indiretto con registro puntatore Anche questa modalità di indirizzamento si utilizza quando l operando è in memoria. L istruzione specifica un registro da 32 bit (registro puntatore), il cui contenuto viene interpretato come indirizzo della locazione a partire dalla quale si trova l operando. I seguenti esempi chiariscono come questa modalità di indirizzamento viene indicata a livello di linguaggio simbolico. COB (EAX) Significato: l operando è di 8 bit e risiede nella locazione di memoria il cui indirizzo è contenuto in EAX. COW (EBX) Significato: l operando è di 16 bit e risiede nella doppia locazione di memoria il cui indirizzo è contenuto in EBX. COL (EBX), EAX Significato: gli operandi sono di 32 bit. L operando sorgente (individuato mediante l indirizzamento indiretto con registro puntatore) risiede nella quadrupla locazione di memoria il cui indirizzo è contenuto in EBX, e l operando destinatario (individuato mediante l indirizzamento di registro) risiede in EAX. L indirizzamento indiretto con registro puntatore può essere utilizzato per accedere in sequenza agli elementi di un vettore (che in memoria occupano locazioni consecutive): semplici operazioni di aggiornamento del contenuto del registro fanno passare da un elemento al successivo (o al precedente) Indirizzamento modificato Questa modalità di indirizzamento rappresenta una generalizzazione delle pre

19 Organizzazione software di un semplice calcolatore 23 cedenti due. Nell istruzione sono specificati uno spiazzamento (numero naturale di 8 bit o 32 bit) e un registro di modifica (da 32 bit): la somma (su 32 bit) dello spiazzamento (esteso a 32 bit) e del contenuto del registro rappresenta l indirizzo dell operando. Il seguente esempio chiarisce come questa modalità di indirizzamento viene indicata a livello di linguaggio simbolico. COB (EBX) Significato: l operando è di 8 bit e risiede nella locazione di memoria il cui indirizzo si ottiene sommando al contenuto di EBX lo spiazzamento L indirizzamento modificato serve per accedere agli elementi di vettori o alle componenti di strutture (anch esse occupano locazioni consecutive di memoria). L indirizzamento modificato può essere quindi utilizzato dal programmatore in due modi differenti. a) Indirizzamento con registro indice Lo spiazzamento rappresenta l indirizzo di partenza di un vettore (indirizzo del primo elemento), sempre di 32 bit, mentre il contenuto del registro seleziona uno specifico elemento: semplici operazioni di aggiornamento del contenuto del registro (detto in tal caso registro indice) fanno passare da un elemento del vettore al successivo (o al precedente). L indirizzamento con registro indice viene anche utilizzato per accedere a elementi corrispondenti di differenti vettori: per questo occorre che le istruzioni che elaborano i singoli vettori abbiano spiazzamenti distinti, ma utilizzino tutte lo stesso registro indice. b) Indirizzamento con registro base Il registro base contiene l indirizzo di partenza di una struttura (insieme consecutivo di locazioni di memoria), mentre lo spiazzamento seleziona un particolare elemento della struttura medesima. Cambiando il contenuto del registro (detto in tal caso registro base) si seleziona l elemento corrispondente di una differente struttura Indirizzamento immediato In questo caso l operando è contenuto nell istruzione stessa (operando immediato). Pertanto è possibile utilizzare l indirizzamento immediato solo nelle i- struzioni a due operandi e per il solo operando sorgente. I seguenti esempi chiariscono come questa modalità di indirizzamento viene indicata a livello di linguaggio simbolico. COB $20, AL

20 24 Capitolo 1 Significato: gli operandi sono di 8 bit: l operando sorgente (individuato mediante l indirizzamento immediato) è contenuto nell istruzione e vale 20; l operando destinatario (individuato mediante l indirizzamento di registro) è contenuto in AL. COW $0032, 2B(EBX) Significato: gli operandi sono di 16 bit: l operando sorgente (individuato mediante l indirizzamento immediato) è contenuto nell istruzione e vale 0032; l operando destinatario (individuato mediante l indirizzamento modificato) si trova nella doppia locazione il cui indirizzo si ottiene sommando B con il contenuto di EBX. Notare che l operando immediato può essere rappresentato nell istruzione con un numero di bit inferiore rispetto a quello dell operando destinatario: in questo caso, quando l istruzione viene eseguita, l operando immediato viene preliminarmente esteso su un numero maggiore di bit prima di essere manipolato. L indirizzamento immediato è utile quando si utilizzano come operandi delle costanti Indirizzamento relativo Questo indirizzamento è possibile solo per le istruzioni di controllo. Nell istruzione è presente uno spiazzamento (numero intero di 8 bit oppure di 32 bit), e l indirizzo di salto (nuovo contenuto di EIP) è dato dalla somma (su 32 bit) tra il contenuto attuale di EIP e lo spiazzamento (esteso a 32 bit). Notare che EIP contiene l indirizzo della istruzione sequenzialmente successiva, e che sono possibili sia salti indietro che salti in avanti (lo spiazzamento è un numero intero). La lunghezza dello spiazzamento determina l intervallo dei possibili indirizzi di salto nell intorno del contenuto di EIP. I seguenti esempi chiariscono come questa modalità di indirizzamento viene indicata a livello di linguaggio simbolico. CO EIP + 5B Significato: l indirizzo di salto si ottiene dalla somma tra il contenuto attuale di EIP e la quantità B (EIP contiene l indirizzo della istruzione sequenzialmente successiva). CO EIP 00002A31 Significato: l indirizzo di salto si ottiene dalla differenza tra il contenuto attuale di EIP e la quantità 00002A31 (EIP contiene l indirizzo della istruzione sequenzialmente successiva).

21 Organizzazione software di un semplice calcolatore Modi di indirizzamento per le varie categorie di istruzioni Precisiamo adesso quali modalità di indirizzamento possono venir utilizzate dalle varie categorie di istruzioni (le modalità di indirizzamento sono specificate nel codice operativo). Con il termine registro intenderemo la modalità di indirizzamento di registro, con il termine memoria intenderemo le modalità di indirizzamento diretto, indiretto con registro puntatore e modificato (con registro indice o con registro base), e con il termine immediato intenderemo la modalità di indirizzamento immediato. Inoltre, con il termine registro_a intenderemo uno dei registri AL, AX, EAX. Infine, con il termine relativo intenderemo la modalità di indirizzamento relativo. La classificazione è la seguente: Istruzioni operative a due operandi COlun sorgente, destinazione Operandi: Registro - Memoria Memoria - Registro Registro - Registro Immediato - Memoria Immediato - Registro Istruzioni operative a due operandi (campo destinazione non presente) COlun sorgente Operandi: Memoria - Implicito Registro - Implicito Immediato - Implicito Istruzioni operative a un operando COlun destinazione Operando: Memoria Registro Istruzioni di ingresso/uscita INlun sorgente, registro_a OUTlun registro_a, destinazione Operandi sorgente e destinazione: indirizzamento diretto se l indirizzo è minore di 256, oppure indiretto tramite il registro DX. Istruzioni di controllo CO EIP + spiazzamento Operandi: Relativo - Implicito

Architettura degli elaboratori (A)

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

Dettagli

ARCHITETTURA DEI CALCOLATORI

ARCHITETTURA DEI CALCOLATORI A09 139 Graziano Frosini Giuseppe Lettieri ARCHITETTURA DEI CALCOLATORI VOLUME II STRUTTURA DEL PROCESSORE, DEL BUS, DELLA MEMORIA E DELLE INTERFACCE, E GESTIONE DELL I/O CON RIFERIMENTO AL PERSONAL COMPUTER

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il 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

Dettagli

Programmazione dello Z80

Programmazione 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

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

1 Organizzazione dell unità in virgola mobile (FPU)

1 Organizzazione dell unità in virgola mobile (FPU) 1 Organizzazione dell unità in virgola mobile (FPU) Il processore può maneggiare anche numeri reali, attraverso un modulo detto Floating-Point Unit (FPU). Storicamente, tale circuiteria è stata inizialmente

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

Dettagli

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE 1. INTRODUZIONE In questo capitolo viene presentata la struttura, sia interna che esterna, di un microprocessore generico riprendendo i concetti esposti nella

Dettagli

AXO 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 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

Dettagli

PROGRAMMAZIONE MISTA. G. Frosini Programmazione mista Slide 1

PROGRAMMAZIONE MISTA. G. Frosini Programmazione mista Slide 1 PROGRAMMAZIONE MISTA G. Frosini Programmazione mista Slide 1 Caratteristiche del processore PC Processore PC (Processore Completo): processore didattico; schematizzazione (software compatibile) dei processori

Dettagli

Architettura del calcolatore

Architettura 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

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione 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

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

I sistemi di elaborazione

I sistemi di elaborazione 2 I sistemi di elaborazione 2.0 I sistemi di elaborazione c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 2.0 0 2 I sistemi di elaborazione Architettura

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.

Tutta 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

Dettagli

L architettura del calcolatore (Prima parte)

L 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

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896 2 Esercizio 2.2 La rappresentazione esadecimale prevede 16 configurazioni corrispondenti a 4 bit. Il contenuto di una parola di 16 bit può essere rappresentato direttamente con 4 digit esadecimali, sostituendo

Dettagli

MACCHINA DI VON NEUMANN

MACCHINA DI VON NEUMANN I seguenti appunti non hanno la pretesa di essere esaustivi, ma hanno l unico scopo di illustrare in modo schematico i concetti necessari allo sviluppo del programma di Informatica della 1D del Liceo Scientifico

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

Il microprocessore 8086

Il 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

Dettagli

Il livello architettura e set di istruzioni

Il 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

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Parte II.2 Elaboratore

Parte 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

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via

Dettagli

2.12 Esercizi risolti

2.12 Esercizi risolti Codifica dell'informazione 55 Lo standard IEEE prevede cinque cause di eccezione aritmetica: underflow, overflow, divisione per zero, eccezione per inesattezza, e eccezione di invalidità. Le eccezioni

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

Funzionalità di un calcolatore

Funzionalità di un calcolatore Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer componenti per elaborare

Dettagli

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio 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

Dettagli

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN ALGORITMI E MACCHINA DI VON NEUMANN 1 COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Codifica dell informazione (parte 1) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente:

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

L 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

Dettagli

Processore PC. Spazio di indirizzamento. la ALU (Arithmetic and Logic Unit) la FPU (Floating Point Unit)

Processore 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:

Dettagli

INFORMATICA 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 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

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Elaborazione dei dati

Elaborazione dei dati Elaborazione dei dati Architettura dei computer Esploreremo i fondamenti dell architettura dei computer. Vedremo come un computer elabora i dati e comunica con periferiche come stampanti e tastiere. Linguaggio

Dettagli

ARCHITETTURA DEL CALCOLATORE

ARCHITETTURA DEL CALCOLATORE Orologio di sistema (Clock) UNITÀ UNITÀ DI DI INGRESSO Schema a blocchi di un calcolatore REGISTRI CONTROLLO BUS DEL SISTEMA MEMORIA DI DI MASSA Hard Hard Disk Disk MEMORIA CENTRALE Ram Ram ALU CPU UNITÀ

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

CODIFICA BINARIA. ... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità.

CODIFICA BINARIA. ... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità. I METODI DI NUMERAZIONE I numeri naturali... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità. Il numero dei simboli usati per valutare la numerosità costituisce la base

Dettagli

La codifica dell informazione

La codifica dell informazione La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni

Dettagli

CPU. Maurizio Palesi

CPU. 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

Dettagli

Famiglia dei processori INTEL

Famiglia dei processori INTEL Famiglia dei processori INTEL 1975 2002 8080-8086 - 80286-80386 - 80486 - Pentium - Pentium II-III-IV - Itanium Compatibilità del SW (assemby) 8086 80286 80386 80486 Pentium Pentium III Perché studiare

Dettagli

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario 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

Dettagli

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione: Modulo 1 Le memorie Le Memorie 4 ETA Capitolo 1 Struttura di un elaboratore Un elaboratore elettronico è un sistema capace di elaborare dei dati in ingresso seguendo opportune istruzioni e li elabora fornendo

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Corso 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 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

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA D INFORMATICA A.S. 2013/14 - CLASSE: I R - Indirizzo Scienze applicate

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA D INFORMATICA A.S. 2013/14 - CLASSE: I R - Indirizzo Scienze applicate A.S. 2013/14 - CLASSE: I R - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione dati. Concetto di sistema e sua classificazione. - I sistemi di elaborazione

Dettagli

SET/CLEAR LOAD DATA FROM STRING

SET/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).

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

I.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 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,

Dettagli

CAP. 4: Aspetti generali del Sistema Operativo Linux. l http://home.dei.polimi.it/silvano/acso.htm

CAP. 4: Aspetti generali del Sistema Operativo Linux. l http://home.dei.polimi.it/silvano/acso.htm Struttura interna del sistema Operativo Linux CAP. 4: Aspetti generali del Sistema Operativo Linux CAP. 5: Funzionalità del calcolatore l http://home.dei.polimi.it/silvano/acso.htm Funzionalità del Sistema

Dettagli

Appunti di Sistemi e Automazione

Appunti di Sistemi e Automazione Appunti di Sistemi e Automazione Il modello o macchina di Von Neumann rappresenta un computer con i suoi componenti principali e la sua organizzazione logico-funzionale. Tale progetto risale al 1945/1946.

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Unità Periferiche. Rete Di Controllo

Unità Periferiche. Rete Di Controllo MODELLO LOGICO-FUNZIONALE DI UN ELABORATORE Centrale di canale Periferiche CPU Memoria centrale ALU CU Memoria Locale ALU = Aritmetic Logic Unit CU = Registri CU ISTRUZIONE Decodificatore Rete Di Controllo

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1 MULTIPROGRAMMAZIONE E PROTEZIONE G. Frosini Multiprogrammazione e Protezione Slide 1 SISTEMI MULTIPROGRAMMATI Sistema di elaborazione con un solo processore: può eseguire un solo programma alla volta;

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

PROGRAMMA 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

Dettagli

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 90.1 Sistemi di numerazione.................................................... 605 90.1.1 Sistema decimale..................................................

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana: Progma La settimana scorsa: cos è l informatica? cos è un algoritmo? cos è un progma? come si descrive un algoritmo? di cosa si compone un? che cos è il software? a cosa serve? Questa settimana: qual è

Dettagli

Introduzione. Le istruzioni del livello della macchina standard (livello 2) si possono dividere, con buona approssimazione, in due gruppi:

Introduzione. Le istruzioni del livello della macchina standard (livello 2) si possono dividere, con buona approssimazione, in due gruppi: Appunti di Informatica Appendice 3 Istruzioni e flusso di controllo TIPI DI ISTRUZIONI. 1 Introduzione.. 1 Istruzioni per il movimento dei dati. 2 Istruzioni per operazioni diadiche... 2 Istruzioni per

Dettagli

Architettura di un calcolatore: introduzione

Architettura 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

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La 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.

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

Architettura hardware

Architettura 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

Dettagli

C. P. U. MEMORIA CENTRALE

C. 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

Dettagli

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi:

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi: Modulo 8 Elettronica Digitale Contenuti: Introduzione Sistemi di numerazione posizionali Sistema binario Porte logiche fondamentali Porte logiche universali Metodo della forma canonica della somma per

Dettagli

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione RCHITETTUR DI UN ELORTORE MCCHIN DI VON NEUMNN Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). UNITÀ FUNZIONLI fondamentali Processore (CPU) Centrale

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von 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

Dettagli

MONIA MONTANARI. Appunti di Trattamento Testi. Capitolo 1 Il Computer

MONIA MONTANARI. Appunti di Trattamento Testi. Capitolo 1 Il Computer MONIA MONTANARI Appunti di Trattamento Testi Capitolo 1 Il Computer 1. Introduzione La parola informatica indica la scienza che rileva ed elabora l informazione, infatti : Informatica Informazione Automatica

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi 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:

Dettagli

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice: MEMORIA VIRTUALE Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l insieme degli indirizzi logici costituisce il cosiddetto spazio logico. Processore: utilizza indirizzi che prendono

Dettagli

Sistemi di numerazione: generalità

Sistemi di numerazione: generalità Sistemi di numerazione: generalità Nel corso della storia sono stati introdotti diversi sistemi di numerazione, dettati di volta in volta dalle specifiche esigenze dei vari popoli. Poiché ogni numero maggiore

Dettagli

Capitolo 3 Operazioni di ingresso e uscita

Capitolo 3 Operazioni di ingresso e uscita Capitolo 3 Operazioni di ingresso e uscita 3.1. Per assicurare che i dati siano letti solo una volta. 3.2. Assumendo i registri dell interfaccia dello schermo in Figura 3.3, si può usare il seguente programma:

Dettagli

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico- Principi di architetture dei calcolatori: l unità di controllo Mariagiovanna Sami L unità di controllo Per eseguire le istruzioni di macchina, occorre che vengano generati nell ordine corretto i segnali

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO

EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO BARRE PRINCIPALI GESTIONE FILE BARRA DEI MENU BARRA STANDARD Nuovo: si crea un nuovo foglio Apri: si carica un foglio da

Dettagli

L'informazione e la sua codifica

L'informazione e la sua codifica L'informazione e la sua codifica Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Informatica e telecomunicazione Cos è l informatica informatica? lo studio sistematico degli

Dettagli

Il 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 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

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo 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:

Dettagli

Architettura degli Elaboratori

Architettura 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

Dettagli