Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoEmanuele Raimondi Modificato 9 anni fa
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Maggio 2015
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un po’ di logistica… 2
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 2ndo Compitino 21 Maggio @ NECST Lab (12.30pm) 22 Maggio @ CG1 (2pm) 22 Maggio @ CG1 (3.30pm) 3
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini? Ricordo che si supera con un tot di 55% 4
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini? Ricordo che si supera con un tot di 55% FINITO!!! 5
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cristiana Bolchini 6
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini? Ricordo che si supera con un tot di 55% Dovete superare EIM nella sessione estiva Ricordo che una sessione = due prove (nello stesso periodo) Ricordo che vi sono 3 sessioni Luglio (estiva), Settembre (autunnale(?)), Febbraio (invernale) 7
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab di EIM Giovedi’: Abba' a Conti Lunedi’: Core a Luraghi 8
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… 9 1945 ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… 10 1945 ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… 11 1945 ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… 12 1945 ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… 13 1945 ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Codifica delle istruzioni e dei dati per l’esecuzione automatica Architettura dei calcolatori Struttura e principi di funzionamento della CPU della memoria centrale 14
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’ “esecutore” Un calcolatore basato sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi: Un calcolatore basato sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi: dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura; i contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto; le istruzioni vengono eseguite in modo sequenziale. Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: il concetto di tipo di dato è quasi assente, il numero di operandi è limitato (in genere non più di due), il numero di operazioni previste è ridotto. Struttura istruzionecodice operativodestsrc1src2 Linguaggio assemblatoreaddR01R02R03 Linguaggio macchina000000 00000 100000000010001000011 15
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciclo Fetch–Decode–Execute Fetch Decode Execute 16
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le parti di una CPU Data path (o percorso dei dati) è la parte che si occupa dell’effettiva elaborazione dei dati; comprende dispositivi diversi una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro). Unità di controllo coordina le operazioni di tutto il processore (anche quelle del data path!); regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all’uscita dell’ALU; invia all’ALU il codice dell’operazione da eseguire; riceve indicazioni sull’esito dell’operazione appena eseguita dall’ALU e gestisce opportunamente queste informazioni; comprende alcuni registri di uso specifico Program Counter (PC) – qual è l’istruzione successiva; Instruction Register (IR) – istruzione in corso d’esecuzione; Program Status Word (PSW) … 17
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Data path Registri ingresso ALU R00R01R02R03………… Registri ALUALU Registro uscita ALU X Y X+YX+YX+YX+Y Istruzione (e.g. add) esito X Y X+YX+YX+YX+Y X Y 18
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Unità di controllo Memoria Bus dati Bus indirizzi Bus controllo PC PSW Data path Unità di controllo CPU IR Registri ALU Collegamenti per il trasferimento dati Collegamenti di controllo Collegamenti per il trasferimento istruzioni 19
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una sequenza di istruzioni … Ipotizziamo che Ipotizziamo che si debba eseguire l’istruzione A A + B + C (assegna alla variabile A la somma del contenuto delle variabili A, B e C); le corrispondenti istruzioni in linguaggio macchina si trovino all’indirizzo 789, 790, 791, … (come riportato nella tabella sottostante); le variabili A, B e C si trovino rispettivamente nelle celle di memoria 4000 (A), 4004 (B) e 4008 (C). NumIstruzioneCommento …… … … 789load R02,4000 trasferisce il contenuto della cella 4000 (A) nel registro R02 790load R03,4004 trasferisce il contenuto della cella 4004 (B) nel registro R03 791add R01,R02,R03 somma il contenuto dei registri R02 e R03 e scrive il risultato in R01 792load R02,4008 trasferisce il contenuto della cella 4008 (C) nel registro R02 793add R01,R01,R02 somma il contenuto dei registri R01 e R02 e scrive il risultato in R01 794store R01,4000 trasferisce il contenuto del registro R01 nella cella 4000 (A) …… … … 20
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Situazione iniziale 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati Collegamenti di controllo Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni 21
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0789 Lettura istruzione 0789 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02,4000 +10790 lettura 22
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0790 Esecuzione istruzione 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02,4000 4000 1492 lettura 23
24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0790 Lettura istruzione 0790 0790 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R03,4004 +10791 load R02,4000 1492 lettura 24
25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0791 Esecuzione istruzione 0790 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R03,4004 4004 1918 lettura 1492 25
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0791 Lettura istruzione 0791 0791 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R02,R03 +10792 load R03,4004 1492 lettura 1918 26
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0792 Esecuzione istruzione 0791 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R02,R03 1492 1918 1492 1918 add esito 3410 27
28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0792 Lettura istruzione 0792 0792 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02,4008 +10793 add R01,R02,R03 1492 lettura 1918 3410 28
29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0793 Esecuzione istruzione 0792 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02,4008 4008 2006 lettura 1492 1918 3410 29
30
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0793 Lettura istruzione 0793 0793 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R01,R02 +1 0794 load R02,4008 2006 lettura 1918 3410 30
31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0794 Esecuzione istruzione 0793 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R01,R02 2006 1918 2006 3410 add esito 5416 3410 31
32
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0794 Lettura istruzione 0794 0794 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … … … … … 40001492 40041918 40082006 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati store R01,4000 +1 0795 add R01,R01,R02 2006 lettura 1918 5416 32
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE … … … … 40001492 40041918 40082006 … … … … 5416 0795 Esecuzione istruzione 0794 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02,4000 0790load R03,4004 0791add R01,R02,R03 0792load R02,4008 0793add R01,R01,R02 0794store R01,4000 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati store R01,4000 4000 scrittura 2006 1918 5416 33
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma dati e istruzioni, dove sono salvati? 34 in memoria
35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Criteri di caratterizzazione di una memoria Velocità tempo di accesso (access time) (quanto passa tra una richiesta e la relativa risposta) velocità di trasferimento (transfer rate) (quanti byte al secondo si possono trasferire) Volatilità cosa succede quando la memoria non è alimentata? per quanto tempo i dati vi rimangono immagazzinati? Capacità quanti byte può contenere? qual è la dimensione massima? Costo (per bit) Modalità di accesso diretta (o casuale): il tempo di accesso è indipendente dalla posizione sequenziale: il tempo di accesso dipende dalla posizione mista: combinazione dei due casi precedenti associativa: indicato il dato, la memoria risponde indicando l’eventuale posizione che il dato occupa in memoria. 35
36
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Gerarchia di memoria! 36 Obiettivo: realizzare una memoria grossa e veloce dimensioni pari a circa quelle della memoria grossa; Memorie di gran capacità, relativamente lente, economiche ed accessibili tramite il bus prestazioni pari a circa quelle della memoria veloce. Memorie veloci, integrate nello stesso chip della CPU, ma costose Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali: aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit.
37
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una gerarchia di memoria 37
38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Indirizzi di memoria I bit nelle memorie sono raggruppati in celle: I bit nelle memorie sono raggruppati in celle: tutte le celle sono formate dallo stesso numero di bit; una cella composta da k bit, è in grado di contenere una qualunque tra le 2 k combinazioni diverse di bit. Ogni cella ha un indirizzo: Ogni cella ha un indirizzo: serve come accesso all’informazione; in una memoria con N celle gli indirizzi vanno da 0 a N–1. La cella è l’unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). La cella è l’unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni. I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni. 38
39
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Organizzazione della memoria 39
40
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentati come numeri binari: Anche gli indirizzi della memoria sono rappresentati come numeri binari: un indirizzo di M bit consente di indirizzare 2 M celle; per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4; il numero di bit nell’indirizzo determina il numero massimo di celle indirizzabili nella memoria ed è indipendente dal numero di bit per cella (una memoria con 2 12 celle richiede sempre 12 bit di indirizzo, quale che sia la dimensione di una cella). Una memoria può essere organizzata in diversi modi: Una memoria può essere organizzata in diversi modi: per esempio, con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), 8 celle di 12 bit (8*12=96) 12 celle di 8 bit (12*8=96). In genere si considerano celle di 8 bit (1 byte). 40
41
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Memoria e collegamenti al bus Viene selezionata la parola di indirizzo 0110 2 il contenuto è 01101100; l’operazione è di lettura (load) o di scrittura (store) a seconda dei comandi presenti sul bus di controllo 41
42
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 42 Array vettori di elementi indicizzati, omogenei, memorizzati in celle di memoria consecutive Dichiarazione di un array: int vett[3]; È un array di 3 elementi di tipo int Gli elementi di un array sono normali variabili: vett[0] 3; printf("%d", vett[0]); > 3 scanf("%d", &vett[1]); > 17vett[1] assume valore 17 Gli array
43
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 43 int a, vett[3]; Gli array vett[0] vett[1] vett[2] a a
44
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 44 int v[100]; alloca memoria per 100 elementi interi, a partire da un certo indirizzo di memoria la dimensione deve essere nota al compilatore deve essere una espressione costante Per accedere all' i-esimo elemento di v calcola l'indice i i può essere un'espressione all’indirizzo della prima cella di v somma il numero di celle pari allo spazio occupato da i elementi Come opera il calcolatore?
45
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori – premessa Dichiarare una variabile significa riservare una zona di memoria composta da diverse celle Il numero di celle dipende dal tipo di dato (short int 2 byte, float 4 byte, …) Ogni cella di memoria ha un indirizzo fisico e: il nome della variabile indica il contenuto della cella di memoria l’operatore & permette di ottenere l’indirizzo di memoria della cella associata alla variabile cui l’operatore è applicato 45
46
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili e indirizzi Supponiamo che la dichiarazione riservi la zona di memoria all’indirizzo 1 var indica il contenuto della cella di memoria &var indica l’indirizzo della cella di memoria int var; 0 1 2 3 var &var 46
47
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int 47
48
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 48 int dati[DIM]; In memoria dati[0] dati[1] dati[2]
49
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giochiamo con gli array e i puntatori 49
50
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 50 int dati[DIM]; dati[0] dati[1] dati[2] int *valori; valori In memoria, macchina a 32bit, e.g. x86
51
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 51 int dati[DIM]; 53 7 7 20 int *valori; valori dati[0]=53 dati[1]=7 dati[2]=20 In memoria, macchina a 32bit, e.g. x86
52
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 52 int dati[DIM]; 53 7 7 20 int *valori; 01 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; In memoria, macchina a 32bit, e.g. x86
53
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 53 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 53 01 valori=dati; valori++;
54
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 54 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 54 01 valori=dati; valori++; Si prende il dato in valori e si somma 1
55
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 55 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 55 01 valori=dati; valori++; Si prende il dato in valori e si somma 1 Sommare 1 rispetto al tipo di dato a cui punta valori
56
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 56 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 56 01 valori=dati; valori++; Si prende il dato in valori e si somma 1 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte)
57
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 57 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 57 01 valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte)
58
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 58 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 58 01 valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero
59
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 59 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 59 01 valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero valori++ = 01 + 4 = 05
60
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 60 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 60 valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero valori++ = 01 + 4 = 05 05
61
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 61 int dati[DIM]; 53 7 7 20 int *valori; 05 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; In memoria, macchina a 32bit, e.g. x86
62
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 62 int dati[DIM]; 53 7 7 20 int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; In memoria, macchina a 32bit, e.g. x86
63
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 63 int dati[DIM]; 53 7 7 20 int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; In memoria, macchina a 32bit, e.g. x86
64
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 64 int dati[DIM]; 53 7 7 20 int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; In memoria, macchina a 32bit, e.g. x86 *
65
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 65 int dati[DIM]; 53 7 7 int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; 43 In memoria, macchina a 32bit, e.g. x86
66
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 66
67
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 67
68
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 68
69
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 69
70
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 70
71
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 71 int dati[DIM]; In memoria dati[0] (aka valori[0]) dati[0] (aka valori[0]) dati[1] (aka valori[1]) dati[1] (aka valori[1]) dati[2] (aka valori[2]) dati[2] (aka valori[2])
72
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni – con int *valori 72
73
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni – con int *valori 73
74
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE int *valori Vs int valori[] 74 Aritmetica dei puntatori Accesso tramite array
75
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 2 Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 1, 2, 5 The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley Capitolo 2 Approfondimenti Struttura e progetto dei calcolatori, D. A. Patterson, J. Hennessy, 3a Ed, Zanichelli Capitolo 1, 2 Credits Prof. G. Buonanno e D. Sciuto, LIUC 75
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.