c architettura degli elaboratori introduzione sistemi di...

24
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica Danilo Dessì [email protected] CORSO DI ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di Numerazione

Upload: phungnhi

Post on 23-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

UNIVERSITÀ DEGLI STUDI DI CAGLIARI

Facoltà di ScienzeCorso di Laurea in Informatica

Danilo Dessì[email protected]

CORSO DI ARCHITETTURA DEGLI ELABORATORI

IntroduzioneSistemi di Numerazione

Page 2: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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)

Page 3: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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.

Page 4: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 5: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 6: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

Sistemi di numerazione

Page 7: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 8: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 9: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 10: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 11: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 12: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 13: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 14: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 15: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 16: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 17: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 18: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 19: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 20: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 21: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 22: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 23: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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

Page 24: C ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di ...people.unica.it/danilodessi/files/2018/03/01-Intro-17-18.pdf · Sistema di numerazione Architettura degli elaboratori Un

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