1 architettura di una cpu. 2 sommario organizzazione di un processore linguaggio macchina modi di...
TRANSCRIPT
![Page 1: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/1.jpg)
1
Architettura di una CPU
![Page 2: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/2.jpg)
2
Sommario
Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni.
![Page 3: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/3.jpg)
3
Organizzazione
Un processore, CPU, esegue una sequenza di istruzioni (programma) prelevate da una memoria
La memoria è esterna alla CPU La sequenza di operazioni per elaborare
una singola istruzione prende il nome di instruction cycle.
![Page 4: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/4.jpg)
4
Instruction cycle
È suddiviso in due cicli: Fetch cycle Execution cycle
Fetch cycle: La CPU legge dalla memoria l’istruzione che
deve essere eseguita Execution cycle:
Riconoscimento dell’istruzione da eseguire Lettura degli operandi dell’istruzione Esecuzione dell’operazione.
![Page 5: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/5.jpg)
5
Unità di misura
L’instruction cycle è composto da una sequenza di micro-operazioni eseguite dalla CPU
La durata di una micro-operazione prende il nome di cycle time: tCPU
Il valore 1/tCPU è la frequenza di clock della CPU, misurato in megahertz/Gigahertz (MHz/GHz)
Es: frequenza di clock = 1GHz tCPU = 1 ns (nanosecondi).
![Page 6: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/6.jpg)
6
Interrupt
Evento che interrompe il normale funzionamento della CPU
In risposta la CPU: Sospende l’esecuzione del programma corrente Esegue il programma di gestione dell’interrupt:
interrupt handler al termine del quale Riprende l’esecuzione del programma interrotto
La presenza di un interrupt viene identificata alla fine di ogni instruction cycle.
![Page 7: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/7.jpg)
7
Comportamento di una CPU
fetch cycle
execution cycle
ci sono richieste di interrupt ?
N
trasferisce il controlloall’interrupt handler
S
![Page 8: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/8.jpg)
8
Architettura di una CPU
ALU
ACDR
IRPCARControl
Unit
Mem
ori
a
CPUSR
![Page 9: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/9.jpg)
9
Architettura di una CPU (cont.)
DR, Data Register: memorizza i dati provenienti: dalla memoria e diretti alla CPU; dalla CPU e diretti alla memoria;
AR, Address Register: memorizza gli indirizzi per gli accessi in memoria;
PC, Program Counter: memorizza l’indirizzo della prossima istruzione da eseguire
AC, Accumulatore: memorizza i dati in ingresso ed in uscita dall’ALU.
![Page 10: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/10.jpg)
10
Architettura di una CPU (cont.)
SR, Status Register: memorizza lo stato del processore;
IR, Instruction Register: memorizza il codice operativo dell’istruzione da eseguire, op-code, in base al quale, la control unit capisce quale operazione deve essere eseguita e ne comanda l’esecuzione;
Control unit: controlla le operazioni della CPU;
ALU, Arithmetic Logic Unit: esegue le operazioni aritmetiche e logiche.
![Page 11: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/11.jpg)
11
Registro di stato
Memorizza lo stato del processore; I suoi bit assumono valore 0 o 1 in base al
risultato delle operazioni svolte dal processore;
Esempio, Intel 8086: Processor Status Word (PSW): registro a 16 bit; 9 bit di stato:
flag di stato (6 bit); flag di controllo (3 bit);
![Page 12: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/12.jpg)
12
Intel 8086: flag di stato
Indicano lo stato dell’8086 in seguito ad una istruzione: Carry flag: va a 1 se l’operazione ha prodotto
un riporto od un prestito; Parity flag: va a 1 se il numero di bit a 1 nel
byte meno significativo del risultato è un numero pari;
Auxiliary flag: usato per operazioni aritmetiche su numeri espressi in BCD.
![Page 13: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/13.jpg)
13
Intel 8086: flag di stato (cont.)
Zero flag: va a 1 se il risultato dell’operazione è zero;
Sign flag: coincide con il bit più significativo di un’operazione;
Overflow flag: va a 1 se l’operazione corrente ha dato luogo ad overflow.
![Page 14: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/14.jpg)
14
Intel 8086: flag di controllo
Modificano il comportamento delle istruzioni che verranno eseguite; Direction flag: utilizzata dalle operazioni
di manipolazione delle stringhe; Interrupt flag: quando è 1 vengono
servite le eventuali richieste di interrupt; Trap flag: se è 1 viene eseguito un
interrupt alla fine dell’esecuzione di ogni operazione (serve per realizzare i debugger).
![Page 15: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/15.jpg)
15
Interfaccia con la memoria
Mem
ori
a
CP
UDBUS
ABUS
R/W#
READY
![Page 16: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/16.jpg)
16
Address e Data Bus
ABUS, Address Bus: insieme di linee sulle cui la CPU scrive l’indirizzo della cella di Memoria a cui vuole accedere (in lettura o in scrittura)
DBUS, Data Bus: insieme di linee su cui la CPU o la Memoria scrivono il dato che deve essere trasferito: da CPU a Memoria: la CPU scrive il DBUS, la
Memoria legge il DBUS da Memoria e CPU: la Memoria scrive il DBUS,
la CPU legge il DBUS
![Page 17: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/17.jpg)
17
Control Bus
R/W#, Read/Write (attivo basso): R/W# = 1: la CPU legge un dato dalla Memoria,
trasferimento da Memoria a CPU R/W# = 0: la CPU scrive un dato nella Memoria,
trasferimento da CPU a Memoria READY:
READY = 1: la Memoria ha completato l’operazione, la CPU può continuare il suo lavoro
READY = 0: la Memoria non ha ancora completato l’operazione, la CPU deve attendere.
![Page 18: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/18.jpg)
18
Ciclo di Lettura
CLOCK
ABUS
DBUS
R/W#
READY
T1 T2 T3 T4
Indirizzo Valido
Lettura
Dati
OK
![Page 19: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/19.jpg)
19
Ciclo di Scrittura
CLOCK
ABUS
DBUS
R/W#
READY
T1 T2 T3 T4
Indirizzo Valido
OK
Dati Validi
Scrittura
![Page 20: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/20.jpg)
20
Ciclo di Wait
CLOCK
ABUS
DBUS
R/W#
READY
T1 T2 T3 Tw
Indirizzo Valido
Lettura
Dati
OK
T4
![Page 21: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/21.jpg)
21
Esempio di funzionamento
Ogni istruzione è composta da 2 byte: 1 byte contenente l’op-code 1 byte contenente il dato su cui operare
Istruzione:ADD AC, adx
Somma il contenuto dell’accumulatore con il dato memorizzato in Memoria all’indirizzo adx.
![Page 22: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/22.jpg)
22
Micro-operazioni
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
![Page 23: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/23.jpg)
23
Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
La CPU identifical’istruzione da eseguire.
![Page 24: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/24.jpg)
24
Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
La CPU prelevagli operandi.
![Page 25: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/25.jpg)
25
Micro-operazioni (cont.)
fetch cycle: AR <= PC DR <= M[AR] IR <= DR PC <= PC+1
execution cycle: decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
La CPU eseguel’istruzione.
![Page 26: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/26.jpg)
26
Linguaggio macchina
Istruzioni che la CPU è in grado di eseguire; Due forme equivalenti:
Codice macchina: 10100101 Codice mnemonico: MOV A, B
L’insieme dei codici mnemonici di tutte le istruzioni prende il nome di linguaggio assembler;
L’assemblatore è un programma che traduce il codice mnemonico nel corrispondente codice macchina.
![Page 27: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/27.jpg)
27
Istruzioni macchina
Ogni istruzione specifica: l’operazione da svolgere; gli operandi coinvolti;
La posizione della prossima istruzione è (salvo nelle istruzioni di salto) implicita;
Il programma è eseguito in sequenza L’indirizzo della prossima istruzione è
pari all’indirizzo della prima istruzione successiva alla istruzione corrente.
![Page 28: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/28.jpg)
28
Istruzioni macchina (cont.)
Il Program Counter (PC) memorizza l’indirizzo della prossima istruzione da eseguire;
Il PC può essere: incrementato automaticamente, durante le
normali operazioni; inizializzato ad un particolare valore dalle
istruzioni di salto.
![Page 29: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/29.jpg)
29
Esempio ADD AC, 1024
AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1
JUMP 256 AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] PC <= DR
![Page 30: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/30.jpg)
30
Istruzioni macchina (cont.)
Ogni CPU ha un suo formato per il codice macchina:
Esempio: codice operativo: ADD operando 1: A operando 2: B.
op-code Operando 1 Operando 2
![Page 31: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/31.jpg)
31
Modi di indirizzamento
Specificano la posizione degli operandi su cui una istruzione deve essere eseguita
Possono essere: Immediato Diretto Indiretto.
![Page 32: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/32.jpg)
32
Immediato
Il dato è contenuto nell’istruzione stessa; Per esempio: ADD AC, #99; L’istruzione somma il numero 99 al
contenuto del registro AC.
![Page 33: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/33.jpg)
33
Esempio
AR <= PCDR <= M[AR]IR <= DRPC <= PC+1decodifica IRAR <= PCDR <= M[AR] ; legge l’immediatoAC <= AC + DRPC <= PC + 1
![Page 34: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/34.jpg)
34
Diretto
L’istruzione specifica l’indirizzo del dato su cui si deve eseguire l’operazione;
Per esempio: ADD AC, X; Il simbolo X può essere:
l’indirizzo della cella di Memoria che contiene il dato;
il registro che contiene il dato.
![Page 35: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/35.jpg)
35
Esempio
ADD AC, 05F88
AC <= AC + 25
Memoria
25 05F88
![Page 36: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/36.jpg)
36
Esempio (cont.)
AR <= PCDR <= M[AR]IR <= DRPC <= PC+1decodifica IRAR <= PCDR <= M[AR] ; legge l’indirizzoAR <= DR ; del datoDR <= M[AR] ; legge il datoAC <= AC + DRPC <= PC + 1
![Page 37: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/37.jpg)
37
Indiretto
L’istruzione contiene l’indirizzo della locazione di memoria in cui è contenuto l’indirizzo del dato su cui l’istruzione deve operare;
Per esempio: ADD AC, [X] Il simbolo X può essere:
l’indirizzo della cella di memoria che contiene l’indirizzo del dato;
il registro che contiene l’indirizzo del dato.
![Page 38: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/38.jpg)
38
Esempio
ADD AC, [05F88]
AC <= AC + 74
Memoria
F0200 05F88
74 F0200
![Page 39: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/39.jpg)
39
Esempio (cont.)
AR <= PCDR <= M[AR]IR <= DRPC <= PC+1decodifica IRAR <= PCDR <= M[AR] ; 1AR <= DRDR <= M[AR] ; 2
AR <= DR
DR <= M[AR] ; 3
AC <= AC + DR
PC <= PC + 1
![Page 40: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/40.jpg)
40
Tipi di indirizzo
Assoluto: L’istruzione specifica l’indirizzo completo Viene prodotto un codice macchina lungo
Relativo: L’istruzione specifica lo spiazzamento
rispetto ad un indirizzo di partenza
![Page 41: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/41.jpg)
41
Tipi di indirizzo (cont.)
Lo spiazzamento può essere: espresso su un byte: +127, -128
Non permette di accedere a qualunque dato in memoria
Produce codice macchina compatto.
![Page 42: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/42.jpg)
42
Esempio
Indirizzamento indiretto relativo; Indirizzo di base contenuto in AR.
MOV AC, [+25]
Memoria
05F88
63 05FAD
05F88AR
25
AC <= 63
![Page 43: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/43.jpg)
43
Registro base e registro indice
Si estende il concetto di indirizzo relativo utilizzando due registri: BP, base pointer: contiene l’indirizzo di
partenza di un’area di memoria BI, base index: contiene la posizione rispetto
al registro base in un area di memoria.
![Page 44: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/44.jpg)
44
Esempio
MOV AC, BP[BI] Memoria
05F88
63 05FAD
05F88BP
25
AC <= 63
00025BI
![Page 45: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/45.jpg)
45
Tipi di istruzioni
Data transfer: trasferiscono dati: Dalla memoria alla CPU: MOV AC, [0x25] Dalla CPU alla memoria: MOV 0x33, AC Tra registri della CPU: MOV DR, AC
Aritmetiche: ADD AC, 0x9B Logiche: eseguono operazioni logiche:
XOR AC, AC CMP AC, 0x0
![Page 46: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/46.jpg)
46
Tipi di istruzioni (cont.) Controllo di flusso: modificano la sequenza
delle istruzioni: In modo assoluto: JMP 0xF0 In base ad una condizione: JNZ 0x1A Chiamata/ritorno da procedura: CALL sort/RET
Input/Output: istruzioni per il trasferimento di dati: Dalla CPU ad un dispositivo di output: OUT 0xAA Da un dispositivo di input alla CPU: IN 0xAB.
![Page 47: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/47.jpg)
47
Controllo di flusso condizionato
Vengono utilizzate per modificare il flusso di esecuzione di un programma in base ad una condizione;
Esempio:CMP AC, #0x0A
JNZ loop
Esegue AC-0x0A. Se il risultato è zero, lo zero-flag in SR viene messo ad 1.
Se lo zero-flag in SR è 0, viene eseguito il salto all’indirizzo loop.
![Page 48: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/48.jpg)
48
Chiamata/ritorno da procedura
Procedura: gruppo di istruzioni che eseguono un compito specifico
È memorizzata una sola volta Può essere eseguita un numero qualsiasi di
volte Vantaggi:
Risparmio di spazio in memoria; Modularità del programma;
Svantaggio: tempo di elaborazione per eseguire le operazioni di chiamata e ritorno.
![Page 49: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/49.jpg)
49
Esempio
0xA0: CALL sort
0xE0: sort:
0xEF: RET
PC = 0xA0PC = 0xE0PC = 0xE1..PC = 0xEFPC = 0xA1
CALL
RET
L’indirizzo della procedura viene messo nel PC.
L’indirizzo della prossima istruzione da eseguire viene messo nel PC.
È necessario memorizzarel’indirizzo di ritorno!
![Page 50: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/50.jpg)
50
Lo stack
Lo stack è una zona di memoria dove i dati vengono scritti/letti secondo una strategia Last-In-First-Out (LIFO);
Operazione di scrittura sullo stack: push; Operazione di lettura dallo stack: pop; La locazione di memoria contenente l’ultimo
dato inserito (corrispondente al primo che verrà letto) è detto cima dello stack;
La cima dello stack è memorizzata in uno speciale registro: Stack Pointer, SP.
![Page 51: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/51.jpg)
51
Uso dello stack
Dal meccanismo di chiamata a procedura per: Memorizzazione dell’indirizzo di ritorno Salvataggio dei registri Passaggio di parametri alla procedura
Per il salvataggio di variabili temporanee.
![Page 52: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/52.jpg)
52
Esempio
0xA0: CALL sort
0xE0: sort:
0xEF: RET
PC <= PC + 1PUSH PCPC <= 0xE0
POP PC
STACK
SP = 0
SP = 10xA1
SP = 0
CALL
RET
![Page 53: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/53.jpg)
53
Vantaggi dello stack
Permette chiamate di procedure annidate.
0xA0: call sort
0xB0: sort:0xB1: call intcmp
STACK
SP = 0
SP = 10xA1
SP = 2
CALL
CALL
0xA1
0xB2
![Page 54: 1 Architettura di una CPU. 2 Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni](https://reader036.vdocuments.mx/reader036/viewer/2022062512/5542eb74497959361e8dc568/html5/thumbnails/54.jpg)
54
Architettura completa di una CPU
ALU
ACDR
IRPCARControl
Unit
Mem
ori
a
CPUSR
SP