libreoffice presentation template...
TRANSCRIPT
![Page 1: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/1.jpg)
Elettronica dei Sistemi Programmabili
A.A. 2013-2014
Esercizi vari
![Page 2: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/2.jpg)
2/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Regola semplice
Quando si addizionano due interi, ricordarsi che la flag per l'overflow viene settata se:
si addizionano due numeri positivi e il risultato è un numero negativo;
si addizionano due numeri negativi e il risultato è un numero positivo.
![Page 3: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/3.jpg)
3/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Hardware per carry e overflow
La CPU che esegue un'istruzione ADD modifica C e V:
C: carry-out del bit più significativo (MSB);V: (carry-out MSB) XOR (carry-in MSB).
La CPU che esegue un'istruzione SUB modifica C e V:
calcola opposto del 2° operando e esegue ADD;C: NOT(carry-out MSB);V: (carry-out MSB) XOR (carry-in MSB)
![Page 4: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/4.jpg)
4/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizi
![Page 5: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/5.jpg)
5/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 1
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0 , #1 ; r0 ← 1
SUB r0 , #1 ; r0 ← r0–1
r0 N Z C V
![Page 6: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/6.jpg)
6/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 1 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0 , #1 ; r0 ← 1
SUB r0 , #1 ; r0 ← r0–1
r0 N Z C V
0x0000 0001 - - - -
0x0000 0000 0 1 1 0
invertito
![Page 7: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/7.jpg)
7/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 1 (commenti)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0 , #1 ; r0 ← 1
SUB r0 , #1 ; r0 ← r0–1
r0 N Z C V
0x0000 0001 - - - -
0x0000 0000 0 1 1 0
invertito 0000 0001 + FFFF FFFF = -----------1 0000 0000
carry out
![Page 8: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/8.jpg)
8/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 2
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#0xFFFFFFFF ; r0←0xFFFFFFFF
ADD r0,#1 ; r0 ← r0+1
ADD r0,#1 ; r0 ← r0+1
r0 N Z C V
![Page 9: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/9.jpg)
9/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 2 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#0xFFFFFFFF ; r0←0xFFFFFFFF
ADD r0,#1 ; r0 ← r0+1
ADD r0,#1 ; r0 ← r0+1
r0 N Z C V
0xFFFF FFFF - - - -
0x0000 0000 0 1 1 0
0x0000 0001 0 0 0 0
![Page 10: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/10.jpg)
10/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 3
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#0x0 ; r0←0
SUB r0,#1 ; r0 ← r0-1
ADD r0,#2 ; r0 ← r0+2
r0 N Z C V
![Page 11: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/11.jpg)
11/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 3 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
r0 N Z C V
0x0000 0000 - - - -
0xFFFF FFFF 1 0 0 0
0x0000 0001 0 0 1 0
MOV r0,#0x0 ; r0←0
SUB r0,#1 ; r0 ← r0-1
ADD r0,#2 ; r0 ← r0+2
![Page 12: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/12.jpg)
12/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 3 (commento)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
r0 N Z C V
0x0000 0000 - - - -
0xFFFF FFFF 1 0 0 0
0x0000 0001 0 0 1 0
MOV r0,#0x0 ; r0←0
SUB r0,#1 ; r0 ← r0-1
ADD r0,#2 ; r0 ← r0+2
0000 0001 + FFFF FFFF = -----------0 FFFF FFFF
FFFF FFFF + 0000 0002 = -----------1 0000 0001
![Page 13: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/13.jpg)
13/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 4
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#0x7FFFFFFF ; r0←0x7FFFFFFF
ADD r0,#1 ; r0 ← r0+1
r0 N Z C V
![Page 14: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/14.jpg)
14/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 4 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
r0 N Z C V
0x7FFF FFFF - - - -
0x8000 0000 1 0 0 1
0x0000 0001
0 0 0 0
MOV r0,#0x7FFFFFFF ; r0←0x7FFFFFFF
ADD r0,#1 ; r0 ← r0+1
![Page 15: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/15.jpg)
15/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 5
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#0x80000000 ;r0←0x80000000
ADD r0,#0x92000000;r0←r0+0x92000000
r0 N Z C V
![Page 16: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/16.jpg)
16/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 5 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
r0 N Z C V
0x8000 0000 - - - -
0x1200 0000 0 0 1 1
0x0000 0001
0 0 0 0
MOV r0,#0x80000000 ;r0←0x80000000
ADD r0,#0x92000000;r0←r0+0x92000000
![Page 17: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/17.jpg)
17/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 6
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
MOV r0,#-2 ;r0 ← -2
ADD r0,#0x7FFFFFFF;r0←r0+0x7FFFFFFF
r0 N Z C V
![Page 18: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/18.jpg)
18/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Esercizio 6 (soluzione)
Indicare lo stato delle flag della CPU e il contenuto dei registri coinvolti per la seguente sequenza di istruzioni:
r0 N Z C V
0xFFFF FFFE - - - -
0x7FFF FFFD 0 0 1 0
0x0000 0001
0 0 0 0
MOV r0,#-2 ;r0 ← -2
ADD r0,#0x7FFFFFFF;r0←r0+0x7FFFFFFF
![Page 19: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/19.jpg)
19/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Cortex-M0
![Page 20: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/20.jpg)
20/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Mappa della memoria
Nella seguente figura è indicata parte della mappa della memoria per un LPC1769 basato su Cortex-M3.
Indicare il contenuto delle prime due locazioni di memoria della flash e le dimensioni della flash e della SRAM in KiB.
0x0000 0000
SRAM: _______ KiB
flash: ________ KiB
0x0000 0004
codice0x0004 0000
0x0008 0000
stack
0x2008 0000
0x2008 4000
![Page 21: LibreOffice Presentation Template (Community)ssalvatori.altervista.org/alterpages/files/Esercizivari.pdf2/21 Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori](https://reader033.vdocuments.net/reader033/viewer/2022052803/5f2295c40e8f3537c621045e/html5/thumbnails/21.jpg)
21/21Elettronica dei Sistemi Programmabili – aprile 2014 – S. Salvatori
Mappa della memoria (soluzione)
Nella seguente figura è indicata parte della mappa della memoria per un LPC1769 basato su Cortex-M3.
Indicare il contenuto delle prime due locazioni di memoria della flash e le dimensioni della flash e della SRAM in KiB.
2008 40000x0000 0000
SRAM: 16 KiB
flash: 512 KiB
0x0000 00040004 0001
codice0x0004 0000
0x0008 0000
stack
0x2008 0000
0x2008 4000