Sommario
Esercizio 1 ... 3
Esercizio 2 ... 3
Esercizio 3 ... 3
Esercizio 4 ... 3
Esercizio 5 ... 3
Esercizio 6 ... 4
Esercizio 7 ... 4
Esercizio 8 ... 5
Esercizio 9 ... 5
Esercizio 10 ... 6
Esercizio 11 ... 6
Esercizio 12 ... 7
Esercizio 13 ... 8
Esercizio 14 ... 9
Esercizio 15 ... 9
Esercizio 16 ... 9
Esercizio 17 ... 10
Esercizio 18 ... 11
Esercizio 19 ... 12
Esercizio 20 ... 12
Esercizio 21 ... 12
Esercizio 22 ... 13
Esercizio 23 ... 14
Esercizio 24 ... 14
Esercizio 25 ... 15
Esercizio 26 ... 16
Esercizio 27 ... 16
Esercizio 28 ... 17
Esercizio 29 ... 17
Esercizio 30 ... 18
Esercizio 31 ... 18
Esercizio 31 ... 19
Esercizio 32 ... 19
Esercizio 33 ... 19
Esercizio 34 ... 20
Esercizio 35 ... 20
Esercizio 36 ... 21
Esercizio 37 ... 22
Esercizio 38 ... 23
Esercizio 39 ... 24
Esercizio 1
- Eseguire le seguenti somme: |238 + 348| |888 + 018| |888 + 018|
- Eseguire le seguenti moltipli: |238 * 18| |258 * 08| |278 * 28|
- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 9?
- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 2?
- Quante informazioni possono essere contenute in una combinazione di 3 cifre in base 10?
Esercizio 2
- Eseguire le seguenti somme:
AB
16+ 12
16FE
16+ 01
16EE
16+ 11
1600
16+ 11
161101
2+ 0011
223
10+ 23
10FF
16* 0
16FF
16* 1
16FE
16* 1A
16AE
16* 1A
161111
2+ 0011
20101
2+ 0111
2Esercizio 3
- Disegnare un schema della CPU indicando le varie componenti .
In particolare indicare il ruolo del MAR, MDR, PC ed ALU e della unità di controllo spiegandone le funzioni e facendo esempi.
Esercizio 4
- Eseguire le seguenti somme:
AB
16+ 21
16FA
16+ 03
16EE
16+ 12
1615
16+ 15
161100
2+ 0011
20111
2+ 1010
2FA
16+ 10
16FF
16+ 2A
16FE
16+ 11
16AE
16* AA
160111
2+ 1000
21001
2+ 1111
2Esercizio 5
- Eseguire le seguenti somme:
AB
16+ 11
16FA
16+ 01
16EE
16+ 22
1603
16+ 15
161101
2+ 0011
20111
2+ 1000
2FF
16+ 10
16FF
16+ 1A
16FE
16+ 10
16AE
16* 1A
161000
2+ 0011
20001
2+ 1111
2Esercizio 6
- Un elaboratore ha in un determinato istante la memoria così valorizzata
JMP
1AAAAAAA8
AAAAAAAD AAAAAAA9
ADD
2AAAAAAAA
R1 AAAAAAAB
A012 AAAAAAAC
JMP
3AAAAAAAD
AAAAAAAA AAAAAAAE
ed i registri della CPU così valorizzati
R1 A123
PC AAAAAAAD
Indicare cosa accade nella CPU indicando
4– passo per passo – come la CPU elabora la informazione.
Esercizio 7
- Un elaboratore ha in un determinato istante la memoria così valorizzata
JMP
5AAAAAAA8
AAAAAAAD AAAAAAA9
ADD
6AAAAAAAA
R1 AAAAAAAB
A012 AAAAAAAC
ed i registri della CPU così valorizzati
R1 0123
PC AAAAAAAA
Indicare cosa accade nella CPU indicando
7– passo per passo – come la CPU elabora la informazione.
1 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
2 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1
3 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
4 Ad esempio (1. PC → MAR 2. Inc(PC) 3. Memory Read etc ect)
5 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
6 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1
7 Ad esempio (1. PC → MAR 2. Inc(PC) 3. Memory Read etc ect)
Esercizio 8
- Un elaboratore ha in un determinato istante la memoria così valorizzata
JMP
8AAAAAAA8
AAAAAAAE AAAAAAA9
ADD R1
9AAAAAAAA
00078B AAAAAAAB
ADD R2
10AAAAAAAC
00023A AAAAAAAD
JMP
11AAAAAAAE
AAAAAAA8 AAAAAAAF
ed i registri della CPU così valorizzati
R1 000A12
R2 000012
PC AAAAAAAA
Indicare cosa accade nella CPU nei clock successivi ed in particolare:
•
Quale è il valore contenuto in R1 ed R2 dopo le istruzioni
•
Se il programma terminerà o meno (indicare il perché)
In generale descrivere come funziona la CPU e come variano i valori dei vari registri
Esercizio 9
- Dati le operazioni OP1 , OP2, OP3 con le seguenti caratteristiche:
OP1 FETCH 2 clock
OP1 DECODE 1 clock
OP1 EXECUTE 2 clock
OP2 FETCH 1 clock
OP2 DECODE 3 clock
OP2 EXECUTE 4 clock
OP3 FETCH 2 clock
OP3 DECODE 1 clock
OP3 EXECUTE 2 clock
Indicare:
8 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
9 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1
10 ADD R2, <numero> - somma ad R2 il numero e lascia il risultato in R2
11 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
•
Quanti clock sono necessari per terminare tutte le 3 Operazioni nel caso in cui NON venga attuata la tecnica PIPELINING.
•
Quanti clock sono necessari per terminare tutte le 3 Operazioni nel caso in cui venga attuata la tecnica PIPELINING
12.
Descrivere la tecnica PIPELINING.
Esercizio 10
- Un elaboratore ha in un determinato istante la memoria così valorizzata
ADD R213 AAAAAAAA
0007B1 AAAAAAAB
ADD R214 AAAAAAAC
00023A AAAAAAAD
JMP15 AAAAAAAE
AAAAAAB0 AAAAAAAF
JMP16 AAAAAAB0
AAAAAAAE AAAAAAB1
ed i registri della CPU così valorizzati
R1 000A12
R2 000012
PC AAAAAAAA
Indicare cosa accade nella CPU nei clock successivi ed in particolare:
• Quale è il valore contenuto in R1 ed R2 dopo le istruzioni
• Se il programma terminerà o meno (indicare il perché)
In generale descrivere come funziona la CPU e come variano i valori dei vari registri
Esercizio 11
- Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:
INDEX DATA
0000 ADD R1 03
0001 MOV R1 R2
0002 ADD R1 03
0003 ADD R1 03
0004 MOV R1 R2
0005 MOV R2 R1
0006 ADD R1 A1
0007 ADD R1 AF
13 ADD R1, <numero> - somma ad R1 il numero e lascia il risultato in R1
14 MOV R1 R2 – copia R1 in R2
15 MOV R2 R1 – copia R2 in R1
16 JMP <indirizzo> - il programma “salta” all’istruzione puntata dall’indirizzo <indirizzo>
INDEX TAG DATA ULTIMA VOLTA USATI
0000 00A0 JMP 0002 13 CLOCK PRIMA
0001 00A1 ADD R1 03h 12 CLOCK PRIMA
0002 0000 ADD1 R1 03h 11 CLOCK PRIMA
0003 0001 MOV1 R1 R2 10 CLOCK PRIMA
0004 0002 ADD1 R1 03h 09 CLOCK PRIMA
0005 0003 ADD1 R1 03h 08 CLOCK PRIMA
0006 0004 MOV1 R1 R2 07 CLOCK PRIMA
0007 0005 MOV R2 R1 06 CLOCK PRIMA
ed i registri della CPU così valorizzati
R1 000A12
R2 000012
PC 0000
Considerando le operazioni finchè il PC arrivi a 0007 indicare:
• Quanti CACHE HIT avvengono.(dare una spiegazione)
• Quanti CACHE MISS avvengono. (dare una spiegazione)
• Quali sono i valori contenuti in R1 ed R2.
• In generale parlare della politica di gestione CACHE / RAM
Esercizio 12
Un elaboratore ha in un determinato istante la memoria così valorizzata
FA A1
03 A2
FB A3
04 A4
FC A5
FD A6
FA A7
FA A8
FE A9
A1 AA
ed i registri della CPU così valorizzati
R1 12
R2 22
PC A9
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)
Esercizio 13
Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:
FA A1
03 A2
FC A3
FE A4
A9 A5
FD A6
FA A7
FA A8
FD A9
FD AA
INDEX TAG DATA
0000 A1 FA
0001 A2 03
0002 A3 FC
ed i registri della CPU così valorizzati
R1 0
R2 1
PC A1
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Considerando le operazioni finchè il PC arrivi a AA indicare:
• Quanti CACHE HIT avvengono.(dare una spiegazione)
• Quanti CACHE MISS avvengono. (dare una spiegazione)
• Quali sono i valori contenuti in R1 ed R2.
Esercizio 14
Eseguire la conversione da esadecimale a binario dei seguenti numeri
AA AC 23 FF 01 DE DC EF 99 10 FA AF AE CE
Eseguire la conversion da binario ad esadecimale dei seguenti numeri
11110000 11001010 10010110 11111111 00000011 01001000 10100101
Esercizio 15
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
ADD R1, 58 INC R1 MOVE R2, R1 ADD R2, 8
Esercizio 16
Data la seguente tabella delle verita
a b c u
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
Ottimizzare la rete logica.
Esercizio 17
Un elaboratore ha in un determinato istante la memoria così valorizzata
FB A1
04 A2
FA A3
40 A4
FC A5
FD A6
FB A7
FB A8
FE A9
A1 AA
ed i registri della CPU così valorizzati
R1 21
R2 23
PC A5
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)
Esercizio 18
Un elaboratore ha la RAM e la CACHE rispettivamente così valorizzate:
FB A1
04 A2
FC A3
FE A4
A9 A5
FC A6
FC A7
FC A8
FA A9
00 AA
INDEX TAG DATA
0000 A1 FB
0001 A2 04
0002 A3 FC
ed i registri della CPU così valorizzati
R1 01
R2 11
PC A1
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Considerando le operazioni finchè il PC arrivi a AA indicare:
• Quanti CACHE HIT avvengono.(dare una spiegazione)
• Quanti CACHE MISS avvengono. (dare una spiegazione) Quali sono i valori contenuti in R1 ed R2.
Esercizio 19
Eseguire la conversione da esadecimale a binario dei seguenti numeri
BB BA 33 11 00 ED CD EE 88 01 AC BE 76 CE
Eseguire la conversion da binario ad esadecimale dei seguenti numeri
10110100 11101010 11110110 00000000 11000011 11001101 1011
Esercizio 20
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
ADD R2, 58 ADD R2, 58 MOVE R2, R1 ADD R2, 8
Esercizio 21
Data la seguente tabella delle verita
a b c u
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
Ottimizzare la rete logica
Esercizio 22
Un elaboratore ha in un determinato istante la memoria così valorizzata
FB A1
04 A2
FA A3
40 A4
FC A5
FD A6
FB A7
FB A8
FE A9
A1 AA
ed i registri della CPU così valorizzati
R1 23
R2 21
PC A7
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)
Esercizio 23
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
ADD R2, 58 ADD R2, 58 MOVE R2, R1 ADD R2, 8
Esercizio 24
Data la seguente tabella delle verita
a b c u
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Ottimizzare la rete logica.
Esercizio 25
Un elaboratore ha in un determinato istante la memoria così valorizzata
FA A1
03 A2
FB A3
04 A4
FC A5
FD A6
FA A7
FA A8
FE A9
A1 AA
ed i registri della CPU così valorizzati
R1 AC
R2 FF
PC A5
La tabella di trascodifica della C.U. così definita
FA ADD R1
FB ADD R2
FC MOVE R1 R2
FD INC R1
FE JUMP
Indicare i passi eseguiti dalla CPU (fermarsi quando vengono ripetuti passi già effettuati)
Esercizio 26
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 2 nanosecondo tempo DECODE: 2 nanosecondo tempo EXECUTE: 1 nanosecondo
ADD R1, 58 INC R1 MOVE R2, R1 ADD R2, 8
Esercizio 27
Data la seguente tabella delle verita
a b c u
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
Ottimizzare la rete logica.
Esercizio 28
Scrivere le parti salienti di un programma che fa la somma di tre numeri
Esercizio 29
Scrivere le parti salienti di un programma che fa la somma di tre numeri
Date le seguenti parti salienti di un programma //
segment .data //
segment .bss
N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //
segment .text //
call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1
dec eax ; decrementa eax di una unità
add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1
call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //
- Indicare brevemente l’algoritmo del programma
- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)
Per il dump della memoria considerare i seguenti dati:
il registro eax è a 32 bit ( 4 x 8 bit )
la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita
call read_int FA call print_int FB move [//],eax FC add eax,[//] FD
dec eax FE
Esercizio 30
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
move [N1],eax dec eax add eax,[N1]
Esercizio 31
Date le seguenti parti salienti di un programma //
segment .data //
segment .bss
N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //
segment .text //
call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1
inc eax ; incremento eax di una unità
add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1
call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //
- Indicare brevemente l’algoritmo del programma
- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)
Per il dump della memoria considerare i seguenti dati:
il registro eax è a 32 bit ( 4 x 8 bit )
la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita
call read_int FA call print_int FB move [//],eax FC add eax,[//] FD
Inc eax FE
Esercizio 31
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
move [N1],eax inc eax add eax,[N1]
Esercizio 32
Redarre la codifica assembler di un programma che chiede un numero intero, ne chiede un secondo e verifica che sia più piccolo del primo (altrimenti o richiede), ed infine restituisce la differenza.
Esercizio 33
Date le seguenti parti salienti di un programma //
segment .data //
segment .bss //
segment .text //
call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move ebx,eax ; sposto eax nel registro ebx
etichetta:
call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax cmp ebx,eax; ; eseguo la comparazione tra il numero conservato in ebx e quello in eax jz etichetta ; ritorno in etichetta il FLAG ZERO = 1
add ebx,eax
call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //
- Indicare brevemente l’algoritmo del programma
- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)
Per il dump della memoria considerare i seguenti dati:
il registro eax è a 32 bit ( 4 x 8 bit )
la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .TEXT sarà indirizzato dall’indirizzo DB
La tabella di trascodifica della C.U. così definita call read_int FA call print_int FB move ebx,eax FC add eax,ebx FD cmp ebx,eax FE
Esercizio 34
Redarre la codifica assembler di un programma che chiede due numeri e ne esegue la differenza.
Esercizio 35
Date le seguenti parti salienti di un programma //
segment .data //
segment .bss
N1 resd 1 ; dichiara una zona di memoria di 4 byte e la etichetto N1 //
segment .text //
call read_int ; chiamo read_int che legge un numero da tastiera e lo carica in eax move [N1],eax ; sposto eax nella zona di memoria N1
dec eax ; decrementa eax di una unità
add eax,[N1] ; sommo eax al numero salvato nella zona di memoria N1
call print_int ; chiamo print _int che stampa il numero contenuto in eax a video //
- Indicare brevemente l’algoritmo del programma
- Indicare un possible dump della memoria e descrivere passo passo i passaggi che effettua la CPU(FETCH – DECODE – EXECUTE)
Per il dump della memoria considerare i seguenti dati:
il registro eax è a 32 bit ( 4 x 8 bit )
la memoria è di blocchi di dati da 8 bit (1 x 8 bit) il segmento .BSS sarà indirizzato dall’indirizzo B5 il segmento .TEXT sarà indirizzato dall’indirizzo DB La tabella di trascodifica della C.U. così definita
call read_int FA call print_int FB move [//],eax FC add eax,[//] FD
dec eax FE
Esercizio 36
Indicare i tempi di esecuzione del seguente pezzo di codice con e senza la tecnica del pipelining tenendo conto che:
tempo di FETCH: 1 nanosecondo tempo DECODE: 1 nanosecondo tempo EXECUTE: 1 nanosecondo
move [N1],eax dec eax add eax,[N1]
Esercizio 37
Data la rete logica di seguito indicata:
• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica
Ottimizzare la rete logica – se possibile
Esercizio 38
Data la rete logica di seguito indicata:
• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica
Ottimizzare la rete logica – se possibile
Esercizio 39
Data la rete logica di seguito indicata:
• Considerando che ogni porta logica comporta 0,01 nanosecondo di ritardo, calcolare Il ritardo complessivo della rete logica
Ottimizzare la rete logica – se possibile