Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Elementi di Informatica - Architettura del Calcolatore 1 © A. Valenzano – 1996-2002
Architettura del
calcolatore
Elementi di Informatica - Architettura del Calcolatore 2 © A. Valenzano – 1996-2002
Sommario
• Struttura del calcolatore• CPU, memoria, unità di I/0• Istruzioni e loro esecuzione• Software: linguaggi macchina, assem-
bler e ad alto livello
Elementi di Informatica - Architettura del Calcolatore 3 © A. Valenzano – 1996-2002
Schema a blocchi di un calcolatore (Von Neumann)
UNITA' DICONTROLLO
UNITA' ARITMETICA
MEMORIACENTRALE
UNITA' DIINGRESSO
UNITA' DIUSCITA
Elementi di Informatica - Architettura del Calcolatore 4 © A. Valenzano – 1996-2002
Control unit (I)• Coordina tutte le attività della macchina e
garantisce la corretta sequenza delle operazioni.
• Esegue sempre un ciclo operativo del tipo: Preleva una istruzione dalla memoria (instruction fetching);Interpreta l'istruzione analizzandone il codice operativo (instruction decoding);Genera i segnali con le tempistiche opportune per eseguire l'istruzione (instruction execution).
Elementi di Informatica - Architettura del Calcolatore 5 © A. Valenzano – 1996-2002
Control unit (II)
Contiene i seguenti elementi:• Contatore di programma (Program counter)• Registro di istruzione (Instruction register)• Registri aritmetici (condivisi con la ALU)• Flags (registri da 1 bit condivisi con la ALU)• Registri puntatori alla memoria• Registri di uso generale
Elementi di Informatica - Architettura del Calcolatore 6 © A. Valenzano – 1996-2002
Control unit (III)Esempio di control unit:
Buffer datiBuffer indirizzi
Instruction register
+1
Program counterReg. ausiliari
Registri aritmetici (ALU)
Alla/dalla memoria
Circuiti dicontrollo
addressbus
databus
Elementi di Informatica - Architettura del Calcolatore 7 © A. Valenzano – 1996-2002
Arithmetic-logic unit (I)
• Esegue operazioni aritmetiche (+,-,x,:), logiche (AND,OR,NOT) e di manipolazione di dati (shift,...) sotto il controllo della CU.
• Contiene:registri aritmetici (condivisi con la CU);flags (condivisi con la CU).
• Realizza operazioni fixed-point (sempre meno raramente anche in floating-point) in singola e (spesso) doppia precisione.
Elementi di Informatica - Architettura del Calcolatore 8 © A. Valenzano – 1996-2002
Arithmetic-logic unit (II)
Esempio di ALU:
Registro aritm. B
Sommatore
Registro aritm. A
Elementi di Informatica - Architettura del Calcolatore 9 © A. Valenzano – 1996-2002
Memoria principale• E' costituita da componenti a semiconduttore.• E' organizzata come una sequenza di locazioni
con la stessa dimensione (byte, word, long-word etc.).
• Ad ogni locazione è associato un indirizzo (po-sizione che la locazione occupa rispetto all'origine della memoria).
• Ogni locazione ha un contenuto (informazione).• Ogni locazione è accessibile in modo diretto (ran-
dom access).
Elementi di Informatica - Architettura del Calcolatore 10 © A. Valenzano – 1996-2002
Organizzazione della memoria
Dato 1Istruz. 2 (I)Istruz. 2 (II)
Dato 2Dato 3
Istruzione 1 0
21
43
5
Indirizzi
Il numero di bit di indirizzo determina il numero delle celle.Il numero di bit di dato determina la dimensione di ogni cella.
Contenuti
Elementi di Informatica - Architettura del Calcolatore 11 © A. Valenzano – 1996-2002
Tipi di memoria
• RAM (Random Access Memory)
• ROM (Read Only Memory)
• PROM (Programmable ROM)
• EPROM (Erasable Programmable ROM)
• EEPROM (Electrically Erasable ProgrammableROM)
• . . .
Elementi di Informatica - Architettura del Calcolatore 12 © A. Valenzano – 1996-2002
Gerarchia di tipi di memoria
RegistriCPU
Memoriacache
Memoriaprincipa-
le
Memoriadi massa
tipo: semicond. semicond. semicond. dischi, nastri etc.
tempo di accesso
capacità
costo
Elementi di Informatica - Architettura del Calcolatore 13 © A. Valenzano – 1996-2002
Input unit (I)
• Contiene dispositivi dedicati all'introduzione di informazioni nel calcolatore.
• Può essere pensata come costituita da 2 parti:una parte meccanica o elettromeccanica;una parte elettronica (interfaccia).
• Svolge 2 tipi di funzioni:introduzione di dati e programmi;comunicazione con dispositivi non compati-bili con il calcolatore (interfacciamento).
Elementi di Informatica - Architettura del Calcolatore 14 © A. Valenzano – 1996-2002
Input unit (II)
Esempio di Input Unit:
Parte elettronica
registro di stato
registro comandiregistro datiParte
meccanica oelettromeccanica
dati dati
alcalcolatore
Elementi di Informatica - Architettura del Calcolatore 15 © A. Valenzano – 1996-2002
Output unit
Serve ad emettere informazioni ed ha una struttura logica simmetrica alla IU:
Parte elettronica
registro di stato
registro comandiregistro dati Parte
meccanica oelettromeccanica
datidati
dalcalcolatore
Elementi di Informatica - Architettura del Calcolatore 16 © A. Valenzano – 1996-2002
Formato delle istruzioni
COD. OPERATIVO OPERANDI
E' un campo sempre pre-sente. Indica l'operazione che la CPU (CU + ALU) de-ve eseguire.
Se presenti sono costituiti da uno o più campi che con-tengono i dati su cui opera-re e/o le indicazioni neces-sarie a rintracciare i dati.
Elementi di Informatica - Architettura del Calcolatore 17 © A. Valenzano – 1996-2002
Linguaggio macchina
3E
21
43
56
0
87
3EH20H27H03H
3AH
C6H
10H20H76H
Sposta nel reg. A il dato specifi-cato
Sposta nel reg. B il dato specifi-cato
Somma i reg. A e B - risultato in A
Sposta il dato dal reg. A alla loca-zione di memoria che ha l’indiriz-zo specificato
Stop
Elementi di Informatica - Architettura del Calcolatore 18 © A. Valenzano – 1996-2002
Esecuzione del programma (1)
+1
Pr. counter
Circuitidi
controllo
Instr. register
Addr. buffer
W Z Data buffer
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 19 © A. Valenzano – 1996-2002
Esecuzione del programma (2)
+1
0000
Circuitidi
controllo
Instr. register
Addr. buffer
W Z Data buffer
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 20 © A. Valenzano – 1996-2002
Esecuzione del programma (3)
+1
0000
Circuitidi
controllo
Instr. register
0000
W Z Data buffer
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 21 © A. Valenzano – 1996-2002
Esecuzione del programma (4)
+1
0000
Circuitidi
controllo
Instr. register
0000
W Z Data buffer
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 22 © A. Valenzano – 1996-2002
Esecuzione del programma (5)
+1
0000
Circuitidi
controllo
Instr. register
0000
W Z 3E
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 23 © A. Valenzano – 1996-2002
Esecuzione del programma (6)
+1
0001
Circuitidi
controllo
3E
0000
W Z 3E
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 24 © A. Valenzano – 1996-2002
Esecuzione del programma (7)
+1
0001
Circuitidi
controllo
3E
0000
W Z 3E
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 25 © A. Valenzano – 1996-2002
Esecuzione del programma (8)
+1
0001
Circuitidi
controllo
3E
0001
W Z 3E
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 26 © A. Valenzano – 1996-2002
Esecuzione del programma (9)
+1
0001
Circuitidi
controllo
3E
0001
W Z 3E
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 27 © A. Valenzano – 1996-2002
Esecuzione del programma (10)
+1
0001
Circuitidi
controllo
3E
0001
W Z 20
Registro A Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 28 © A. Valenzano – 1996-2002
Esecuzione del programma (11)
+1
0002
Circuitidi
controllo
3E
0001
W Z 20
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 29 © A. Valenzano – 1996-2002
Esecuzione del programma (12)
+1
0002
Circuitidi
controllo
3E
0001
W Z 20
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 30 © A. Valenzano – 1996-2002
Esecuzione del programma (13)
+1
0002
Circuitidi
controllo
3E
0002
W Z 20
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 31 © A. Valenzano – 1996-2002
Esecuzione del programma (14)
+1
0002
Circuitidi
controllo
3E
0002
W Z 20
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 32 © A. Valenzano – 1996-2002
Esecuzione del programma (15)
+1
0002
Circuitidi
controllo
3E
0002
W Z 27
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 33 © A. Valenzano – 1996-2002
Esecuzione del programma (16)
+1
0003
Circuitidi
controllo
27
0002
W Z 27
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 34 © A. Valenzano – 1996-2002
Esecuzione del programma (17)
+1
0003
Circuitidi
controllo
27
0002
W Z 27
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 35 © A. Valenzano – 1996-2002
Esecuzione del programma (18)
+1
0003
Circuitidi
controllo
27
0003
W Z 27
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 36 © A. Valenzano – 1996-2002
Esecuzione del programma (19)
+1
0003
Circuitidi
controllo
27
0003
W Z 27
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 37 © A. Valenzano – 1996-2002
Esecuzione del programma (20)
+1
0003
Circuitidi
controllo
27
0003
W Z 03
20 Registro B
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 38 © A. Valenzano – 1996-2002
Esecuzione del programma (21)
+1
0004
Circuitidi
controllo
27
0003
W Z 03
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 39 © A. Valenzano – 1996-2002
Esecuzione del programma (22)
+1
0004
Circuitidi
controllo
27
0003
W Z 03
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 40 © A. Valenzano – 1996-2002
Esecuzione del programma (23)
+1
0004
Circuitidi
controllo
27
0004
W Z 03
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 41 © A. Valenzano – 1996-2002
Esecuzione del programma (24)
+1
0004
Circuitidi
controllo
27
0004
W Z 03
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 42 © A. Valenzano – 1996-2002
Esecuzione del programma (25)
+1
0004
Circuitidi
controllo
27
0004
W Z C6
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 43 © A. Valenzano – 1996-2002
Esecuzione del programma (26)
+1
0005
Circuitidi
controllo
C6
0004
W Z C6
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 44 © A. Valenzano – 1996-2002
Esecuzione del programma (27)
+1
0005
Circuitidi
controllo
C6
0004
W Z C6
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 45 © A. Valenzano – 1996-2002
Esecuzione del programma (28)
+1
0005
Circuitidi
controllo
C6
0004
W Z C6
20 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 46 © A. Valenzano – 1996-2002
Esecuzione del programma (29)
+1
0005
Circuitidi
controllo
C6
0004
W Z C6
20+03 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 47 © A. Valenzano – 1996-2002
Esecuzione del programma (30)
+1
0005
Circuitidi
controllo
C6
0004
W Z C6
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 48 © A. Valenzano – 1996-2002
Esecuzione del programma (31)
+1
0005
Circuitidi
controllo
C6
0005
W Z C6
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 49 © A. Valenzano – 1996-2002
Esecuzione del programma (32)
+1
0005
Circuitidi
controllo
C6
0005
W Z C6
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 50 © A. Valenzano – 1996-2002
Esecuzione del programma (33)
+1
0005
Circuitidi
controllo
C6
0005
W Z 3A
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 51 © A. Valenzano – 1996-2002
Esecuzione del programma (34)
+1
0006
Circuitidi
controllo
3A
0005
W Z 3A
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 52 © A. Valenzano – 1996-2002
Esecuzione del programma (35)
+1
0006
Circuitidi
controllo
3A
0005
W Z 3A
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 53 © A. Valenzano – 1996-2002
Esecuzione del programma (36)
+1
0006
Circuitidi
controllo
3A
0006
W Z 3A
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 54 © A. Valenzano – 1996-2002
Esecuzione del programma (37)
+1
0006
Circuitidi
controllo
3A
0006
W Z 3A
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 55 © A. Valenzano – 1996-2002
Esecuzione del programma (38)
+1
0006
Circuitidi
controllo
3A
0006
W Z 10
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 56 © A. Valenzano – 1996-2002
Esecuzione del programma (39)
+1
0007
Circuitidi
controllo
3A
0006
10
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
W 10
Elementi di Informatica - Architettura del Calcolatore 57 © A. Valenzano – 1996-2002
Esecuzione del programma (40)
+1
0007
Circuitidi
controllo
3A
0006
10
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
W 10
Elementi di Informatica - Architettura del Calcolatore 58 © A. Valenzano – 1996-2002
Esecuzione del programma (41)
+1
0007
Circuitidi
controllo
3A
0007
W 10 10
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 59 © A. Valenzano – 1996-2002
Esecuzione del programma (42)
+1
0007
Circuitidi
controllo
3A
0007
W 10 10
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 60 © A. Valenzano – 1996-2002
Esecuzione del programma (43)
+1
0007
Circuitidi
controllo
3A
0007
W 10 20
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
Elementi di Informatica - Architettura del Calcolatore 61 © A. Valenzano – 1996-2002
Esecuzione del programma (44)
+1
0008
Circuitidi
controllo
3A
0007
20
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
20 10
Elementi di Informatica - Architettura del Calcolatore 62 © A. Valenzano – 1996-2002
Esecuzione del programma (45)
+1
0008
Circuitidi
controllo
3A
0007
20
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
20 10
Elementi di Informatica - Architettura del Calcolatore 63 © A. Valenzano – 1996-2002
Esecuzione del programma (46)
+1
0008
Circuitidi
controllo
3A
0007
20
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
20 10
Elementi di Informatica - Architettura del Calcolatore 64 © A. Valenzano – 1996-2002
Esecuzione del programma (47)
+1
0008
Circuitidi
controllo
3A
2010
23
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 11
20 10
Elementi di Informatica - Architettura del Calcolatore 65 © A. Valenzano – 1996-2002
Esecuzione del programma (48)
+1
0008
Circuitidi
controllo
3A
2010
23
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
20 10
Elementi di Informatica - Architettura del Calcolatore 66 © A. Valenzano – 1996-2002
Esecuzione del programma (49)
+1
0008
Circuitidi
controllo
3A
2010
23
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
20 10
Elementi di Informatica - Architettura del Calcolatore 67 © A. Valenzano – 1996-2002
Esecuzione del programma (50)
+1
0008
Circuitidi
controllo
3A
0008
W 10 23
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
Elementi di Informatica - Architettura del Calcolatore 68 © A. Valenzano – 1996-2002
Esecuzione del programma (51)
+1
0008
Circuitidi
controllo
3A
0008
20 10 23
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
Elementi di Informatica - Architettura del Calcolatore 69 © A. Valenzano – 1996-2002
Esecuzione del programma (52)
+1
0008
Circuitidi
controllo
3A
0008
20 10 76
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
Elementi di Informatica - Architettura del Calcolatore 70 © A. Valenzano – 1996-2002
Esecuzione del programma (53)
+1
0009
Circuitidi
controllo
76
0008
76
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
20 10
Elementi di Informatica - Architettura del Calcolatore 71 © A. Valenzano – 1996-2002
Esecuzione del programma (54)
+1
0009
Circuitidi
controllo
76
0008
76
23 03
Sommatore
0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...
2010 23
20 10
Elementi di Informatica - Architettura del Calcolatore 72 © A. Valenzano – 1996-2002
Linguaggi assembler
Semplificano la codifica in linguaggio macchina di un programma. L'uso del linguaggio macchina è oneroso per:– l'ampiezza del set di istruzioni;– la difficoltà di "ricordare" codici operativi ed
indirizzi degli operandi in memoria;– la scarsa flessibilità riscontrata nella modifi-
ca/correzione dei programmi.L'assembler consente di definire in modo simbo-lico indirizzi, dati ed istruzioni.
Elementi di Informatica - Architettura del Calcolatore 73 © A. Valenzano – 1996-2002
Assemblatore
E' un programma che consente di tradurre il testo (simbolico) del programma utente in istruzioni macchina.
TextEditor
Assem-bler Linker
testo delprogramma
file sorgente(.asm)
file oggetto(.obj)
file eseguibile(.exe)
Elementi di Informatica - Architettura del Calcolatore 74 © A. Valenzano – 1996-2002
Esempio di istruzioni assembler
move A, dato1
move B, dato2
add A,B
store risul,Ahalt
define dato1 20Hdefine dato2 03H
define risul 2011H
3E 20
3F 03
C6
10 20 11
76
linguaggio macchina
linguaggio assembler
Elementi di Informatica - Architettura del Calcolatore 75 © A. Valenzano – 1996-2002
Limiti del linguaggio assembler
• "machine-dependent" (i programmi non sono "portabili");
• non è possibile definire strutture dati complesse;
• debugging del programma non agevole;• elevata probabilità di commettere errori;• scarsa "leggibilità" del programma.
Elementi di Informatica - Architettura del Calcolatore 76 © A. Valenzano – 1996-2002
Linguaggi ad alto livello (HLL)
Hanno caratteristiche complementari ai linguaggi assembler:
• "machine-independence" (o quasi !);• gestione di strutture dati complesse;• ridotta possibilità di errore;• maggior facilità di "debugging";• maggior "leggibilità" e semplicità di docu-
mentazione del s/w;• maggior produttività nello sviluppo del s/w.
Elementi di Informatica - Architettura del Calcolatore 77 © A. Valenzano – 1996-2002
Programmazione in HLL
• non occorre indicare gli indirizzi delle aree di memoria destinate a contenere le variabili;
• non occorre scrivere programmi per gestire operazioni matematiche comuni o per effettuare operazioni di I/O.
L'associazione tra nomi delle variabili e locazioni in memoria è sotto il controllo del compilatore che si occupa di tradurre le istruzioni (statement) in operazioni macchina e di richiamare gli opportuni sottoprogrammi dove richiesto.
Elementi di Informatica - Architettura del Calcolatore 78 © A. Valenzano – 1996-2002
Compilatori• Effettuano la traduzione da HLL a linguaggio
macchina.• Occorrono compilatori diversi per ogni
linguaggio e per ogni tipo di ambiente s/w (sistema operativo).
Es. di programma in linguaggio C:main(){
printf("Hello world\n");}
Elementi di Informatica - Architettura del Calcolatore 79 © A. Valenzano – 1996-2002
LinkerPermette di :• realizzare un programma suddividendolo in
moduli fisicamente indipendenti;• collegare i moduli ed i sottoprogrammi di
"libreria" utilizzati dal programma.Il linker ha funzioni di
collegamento di moduli (risoluzione dei riferi-menti).rilocazione degli indirizzi.
Elementi di Informatica - Architettura del Calcolatore 80 © A. Valenzano – 1996-2002
Esempio di uso del linker (I)
MAIN SUBR1 SUBR2
000
xxx
000 000
yyy
zzz
moduli "oggetto"compilati separatamente
call subr1
call subr2
Elementi di Informatica - Architettura del Calcolatore 81 © A. Valenzano – 1996-2002
Uso del linker (II)
MAIN SUBR1 SUBR2
000
xxx
kkk j j j
kkk + yyy
j j j + zzz
call kkk
call j j j
programma in linguaggio macchina;i moduli sono stati rilocati in memoriae sono stati "risolti" i riferimenti tra moduli
Elementi di Informatica - Architettura del Calcolatore 82 © A. Valenzano – 1996-2002
Linguaggi interpretati
La traduzione in linguaggio macchina av-viene al tempo dell'esecuzione tramite un apposito programma detto interpreter.Vantaggi:
• semplicità di debugging;• ridotta occupazione di memoria.
Svantaggi:• efficienza ridotta (ogni istruzione vie-
ne "interpretata" tutte le volte che de-ve essere eseguita).