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

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

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

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

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

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

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

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

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

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

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

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

- 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

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

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

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

(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

4. Operazioni aritmetiche con i numeri binari

4. 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:

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

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

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

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

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

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

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

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

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

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

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

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

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA Il termine informatica riassume due parole, informazione automatica, e si occupa dei sistemi per l elaborazione

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Utilizzo delle formule in Excel

Utilizzo delle formule in Excel Utilizzo delle formule in Excel Excel è dotato di un potente motore di calcolo che può essere utilizzato per elaborare i dati immessi dagli utenti. I calcoli sono definiti mediante formule. Ogni formula

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

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto 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

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente

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

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

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. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

La codifica delle informazioni

La codifica delle informazioni La codifica delle informazioni Bit e byte Come già visto l elaboratore è in grado di rappresentare informazioni al proprio interno solo utilizzando cifre binarie (bit) che solitamente vengono manipolate

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

introduzione I MICROCONTROLLORI

introduzione 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

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

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

Dettagli

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

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

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella Corso di Fondamenti di Informatica Codifica di dati e istruzioni Anno Accademico 2010/2011 Francesco Tortorella La codifica dei dati e delle istruzioni La più piccola unità di informazione memorizzabile

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

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

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

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

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

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

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

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE CORSO INTRODUTTIVO DI INFORMATICA NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE Dott. Paolo Righetto 1 CORSO INTRODUTTIVO DI INFORMATICA Percorso dell incontro: 1) Alcuni elementi della configurazione hardware

Dettagli

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Un 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

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

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Reti di calcolatori ed indirizzi IP

Reti di calcolatori ed indirizzi IP ITIS TASSINARI, 1D Reti di calcolatori ed indirizzi IP Prof. Pasquale De Michele 5 aprile 2014 1 INTRODUZIONE ALLE RETI DI CALCOLATORI Cosa è una rete di calcolatori? Il modo migliore per capire di cosa

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch. Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE Comunicazione importante dalla prossima settimana, la lezione del venerdì si terrà: dalle 15:00 alle 17.15 in aula 311 l orario

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

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

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli