c architettura degli elaboratori introduzione sistemi di...
TRANSCRIPT
UNIVERSITÀ DEGLI STUDI DI CAGLIARI
Facoltà di ScienzeCorso di Laurea in Informatica
Danilo Dessì[email protected]
CORSO DI ARCHITETTURA DEGLI ELABORATORI
IntroduzioneSistemi di Numerazione
Tutor
Architettura degli elaboratori Intro
Tutor: Danilo Dessì
Email: [email protected]
Skype: danilo_dessi
Homepage: http://people.unica.it/danilodessi/
Ufficio: di fianco al Lab T (fronte Simaz)
Obiettivi
Architettura degli elaboratori Intro
Obiettivi delle esercitazioni:
Approfondire alcuni argomenti delle lezioni
Saper programmare il processore didattico MIC1 – linguaggio IJVM
Saper programmare il processore 8088 – assembly 8088
Prerequisiti:
Saper programmare in un qualsiasi altro linguaggio di programmazione
Materiale didattico:
Le slides delle esercitazioni saranno caricate sia sulla pagina di Prof. Reforgiato sia sulla mia pagina personale.
Organizzazione delle esercitazioni
Architettura degli elaboratori Intro
Orario:
Mercoledì dalle 12.40 alle 13.30
Venerdì dalle 12.40 alle 13.30
Svolgimento:
15 – 20 minuti: esposizione argomento (architettura o istruzioni)
Restante: esercizi da svolgere in aula (su carta o sul vostro pc) + soluzioni commentate
IJVM nella prima parte del corso
8088 nella seconda
Organizzazione delle esercitazioni (2)
Architettura degli elaboratori Intro
Perché seguire le esercitazioni:
All’esame vi verrà chiesto di risolvere esercizi di programmazione (sia con IJVM sia 8088)
In aula vi posso aiutare subito
Potete fare domande e siete invitati a farlo se non capite
Nel caso di dubbi scrivetemi anche per email
Se avete bisogno di ulteriori spiegazioni possiamo fissare degli appuntamenti
Importante:
Le esercitazioni NON sono obbligatorie
Sistemi di numerazione
Sistema di numerazione
Architettura degli elaboratori
Un sistema di numerazione è composto da:• Un insieme di cifre• Un codice formato da un insieme di
regole che permette di interpretare ungruppo di cifre
• Operazioni che permettono di ottenerenuovi codici partendo da altri codici
Nei sistemi di numerazione che utilizzeremmo lecifre sono ordinate e assumono un valoreposizionale
Il sistema di numerazione più utilizzato nella vitadi tutti i giorni è quello in base 10. In informaticasi utilizzano quelli in base 2 (binario), 8 (ottale) e16 (esadecimale)
1 5 7 , 2 8
Posizione delle centinaia
Posizione delle decine
Posizione delle unità
Posizione dei decimi
Posizione dei centesimi
Sistemi di numerazione
Sistema Binario. Conversione Decimale - Binario
Architettura degli elaboratori
Il sistema binario è cosi caratterizzato:• Insieme delle cifre = { 0, 1 }• È un sistema posizionale
Per convertire un numero da decimale a binario:1. Il numero viene diviso per 2 e si calcolano il
quoziente e il resto1. Il resto può essere solo 0 o 1; le cifre del
resto formano il numero binario2. Il procedimento è ripetuto con i
quozienti fino a quando non si arriva al valore 0
Il numero binario è dato dai resti «letti al contrario»
17 1
8 0
4 0
2 0
1 1
0
Quozienti
Resti
( 17 )10 = (10001)2
Sistemi di numerazione
Architettura degli elaboratori
Ogni posizione rappresenta 2n
• In posizione 0 avrò 20
• In posizione 1 avrò 21
• …Per convertire un numero da binario a decimale si moltiplica ogni cifra per il corrispondente 2n e si fa la somma dei valori
1 * 24 + 0 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 16 + 1 = 17
(10001)2 = (17)10
Sistema Binario. Conversione Decimale - Binario
1 0 0 0 1 24 23 22 21 20
Sistemi di numerazione
Sistema Ottale
Architettura degli elaboratori
Nel sistema ottale le cifre utilizzate sono = {0, 1, 2, 3, 4, 5, 6, 7}
Per convertire un numero da decimale a ottale si procede come abbiamo fatto prima per il codice binario, ma questa volta dividiamo per 8
Per la conversione ottale-decimale valgono le stesse regole: andremmo questa volta a moltiplicare per 8n
1
2 2
02 * 81 + 1 * 80 = 16 + 1 = 17
(21)8 = (17)10
17
Sistemi di numerazione
Sistema Esadecimale
Architettura degli elaboratori
Nel sistema esadecimale le cifre utilizzate sono = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Per convertire un numero da decimale a esadecimale si procede allo stesso modo dividendo per 16
Per la conversione esadecimale-decimale valgono le stesse regole: andremmo questa volta a moltiplicare per 16n
34 2
2 2
02 * 161 + 2 * 160 = 32 + 2 = 34
(22)16 = (34)10
Sistemi di numerazione
Binario-Ottale & Binario-Esadecimale
Architettura degli elaboratori
• È possibile convertire direttamente un numero dalla suarappresentazione binaria a una rappresentazione in base 8 o in base 16
• Per convertire da binario in base 8 raggruppo i bit a gruppi di 3 dadestra a sinistra (nel caso non sia possibile formare l’ultimo gruppo siaggiungono 0) e ogni gruppo si converte nella cifra ottalecorrispondente:
(10111010001101)2 = (27215)8
010 111 010 001 1012 7 2 1 5
• Per convertirlo da binario in base 16 le cifre sono prese a gruppi di 4:(10111010001101)2 = (2E8D)16
0010 1110 1000 11012 E 8 D
Sistemi di numerazione
Ottale-Binario & Esadecimale-Binario
Architettura degli elaboratori
• Per convertire un numero dalla sua rappresentazione ottale a quella binaria si prende ogni cifra e la si converte nella corrispettiva binaria utilizzando 3 bit:
(37541)8 = (011111101100001)2
3 7 5 4 1011 111 101 100 001
• Per convertire un numero dalla sua rappresentazione esadecimale a quella binaria si prende ogni cifra e la si converte nella corrispettiva binaria utilizzando 4 bit:
(5FA8C)16 = (0101111110101000110)2 = (101111110101000110)2
5 F A 8 C0101 1111 1010 1000 1100
Sistemi di numerazione
Binario: numeri negativi
Architettura degli elaboratori
• Esistono quattro sistemi per rappresentare un numero negativo:• Modulo e segno• Complemento a 1• Complemento a 2• Notazione in eccesso 2m-1
• Nella rappresentazione modulo e segno il bit più significativo è utilizzatocome bit di segno: vale 0 se il numero è positivo, 1 se il numero ènegativo. Esempi usando 1 byte:
+10 = 0 0001010-50 = 1 0110010+15 = 0 0001111-15 = 1 0001111
Sistemi di numerazione
Complementi
Architettura degli elaboratori
• Anche nella rappresentazione in complemento a 1 il bit più significativo èil bit di segno. Vale 0 se il numero è positivo, 1 se il numero è negativo. Ilnegativo di un numero si ottiene invertendo tutti gli 1 con 0 e viceversa.Esempi:-10 -> 00001010 -> 11110101 -50 -> 00110010 -> 11001101+15 -> 00001111 -15 -> 00001111 -> 11110000
• Anche nella rappresentazione in complemento a 2 il bit più significativo èil bit di segno. Vale 0 se il numero è positivo, 1 se il numero è negativo. Ilnegativo di un numero si ottiene calcolando il complemento a 1 eaggiungendo 1.
-10 -> 00001010 -> 11110101 -> 11110110-50 -> 00110010 -> 11001101 -> 11001110
+15 -> 00001111-15 -> 00001111 -> 11110000 ->11110001
• Il complemento a 2 si può ottenere anche complementando tutti i bit dopo il primo a 1 partendo da quelli meno significativi
Sistemi di numerazione
Notazione in eccesso
Architettura degli elaboratori
• Nella rappresentazione in eccesso m, utilizzando m bit, ogni numero N èmemorizzato come N + 2m-1 . Per esempio usando 8 bit ogni numero dovràessere sommato con il valore 27 = 128. Esempi:
-10 -> 118 -> 01110110-50 -> 78 -> 01001110
+15 -> 143 -> 10001111-15 -> 113 -> 01110001
Sistemi di numerazione
La somma in binario
Architettura degli elaboratori
• La somma di due addendi binari inizia dai bit meno significativi e procedesommando i bit nelle posizioni corrispondenti. In caso di riporto siaggiunge alla colonna a sinistra come nell’aritmetica in base 10
• Se l’operazione è eseguita in complemento a 1, l’eventuale riporto sui bitpiù significativi viene sommato al bit meno significativo
• Se l’operazione è in complemento a 2 l’eventuale riporto viene scartato
15 + (-5) =-------+ 10
Complemento a 1
00001111 +11111010 =
-----------------1 00001001 +
1-----------------
00001010
Complemento a 2
00001111 +11111011 =
-----------------1 00001010
Sistemi di numerazione
Esercizi
Architettura degli elaboratori
• Convertire in binario 84, 77, 103, 2016
• Convertire in decimale (1000101)2, (10110110)2
• Convertire in decimale e binario (41)8, (135)8
• Convertire in decimale e binario (3D)16 ,(A5B)16
• Convertire in ottale e esadecimale (111100001000)2, (101100111001010)2
• Rappresentare utilizzando 8 bit in modulo e segno, complemento a 1, complemento a 2 e rappresentazione in eccesso 8: 27, -27, 127, -127
• Sommare utilizzando 8 bit in modulo e segno, complemento a 1 e complemento a 2:
15 + 20 -15 + 20 15 – 20 -15 -20
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
84 0
42 0
21 1
10 0
5 1
2 0
1 1
0
Leggere i resti dal basso all’alto
77 1
38 0
19 1
9 1
4 0
2 0
1 1
0
103 1
51 1
25 1
12 0
6 0
3 1
1 1
0
2016 0
1008 0
504 0
252 0
126 0
63 1
31 1
15 1
7 1
3 1
1 1
0
• Convertire in binario 84, 77, 103, 2016
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
(1000101)2 = 1 * 26 + 0 * 25 + 0 * 24 + 0 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 64 + 4 + 1 = 69
(10110110)2 = 1 * 27 + 0 * 26 + 1 * 25 + 1 * 24 + 0 * 23 + 1 * 22 + 1 * 21 + 0 * 20 = 128 + 32 + 16 + 4 + 2 = 182
• Convertire in decimale (1000101)2, (10110110)2
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
• Convertire in decimale e binario (41)8, (135)8
(41)8 = (100 001)2
(41)8 = 4 * 81 + 1 *80 = 32 + 1= (33)10
(135)8 = (001 011 101)2
(135)8 = 1 * 82 + 3 * 81 + 5 *80 = 64 + 24 + 5 = (93)10
• Convertire in decimale e binario (3D)16 ,(A5B)16
(3D)16 = (0011 1101)2
(3D)16 = 3 * 161 + 13 * 160 = 48 + 13= (61)10
(A5B)16 = (1010 0101 1011)2
(A5B)16 = 10 * 162 + 5 * 161 + 11 * 160 = 2560 + 80 + 11 = (2651)10
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
• Convertire in ottale e esadecimale (111100001000)2, (101100111001010)2
(111100001000)2 = 111 100 001 000 = (7410)8
(111100001000)2 = 1111 0000 1000 = (F08)16
(101100111001010)2 = 101 100 111 001 010 = (54712)8
(101100111001010)2 = 0101 1001 1100 1010 = (59CA)16
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
• Rappresentare utilizzando 8 bit in modulo e segno, complemento a 1,complemento a 2 e rappresentazione in eccesso 8: 27, -27, 127, -127
N° binario Modulo e segno Compl 1 Compl 2 Eccesso 8
27 00011011 0 0011011 0 0011011 0 0011011 10011011
-27 1 0011011 1 1100100 1 1100101 01100101
127 01111111 0 1111111 0 1111111 0 1111111 11111111
-127 1 1111111 1 0000000 1 0000001 00000001
Sistemi di numerazione
Soluzioni
Architettura degli elaboratori
15 + 20 =----35
Tutti e tre i casi
0 0001111 + 0 0010100 =--------------0 0100011
- 15 + 20 =----5
Complemento a 1
1 1110000 + 0 0010100 =--------------
1 0 0000100 +1
---------------------0 0000101
Modulo e segno
0 0010100 -1 0001111 =--------------0 0000101
Complemento a 1
1 1110001 + 0 0010100 =--------------
1 0 0000101
Sistemi di numerazione