La programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello"

Transcript

1 La programmazione dei calcolatori L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore Attività di programmazione lunga e noiosa Facile commettere errori Linguaggio assembler (o assembly) Rappresentazione simbolica del linguaggio macchina Più comprensibile del linguaggio macchina (simboli anziché sequenze di bit) Tradotto dall assemblatore in linguaggio macchina Dalla forma simbolica dell istruzione macchina al corrispondente formato binario Linguaggi ad alto livello Tradotti dal compilatore in assembler Valeria Cardellini 1 Benefici dei linguaggi ad alto livello Notazione vicina al linguaggio corrente ed alla notazione algebrica (maggiore espressività e leggibilità) Incremento di produttività Facilitano la programmazione, svincolandola dalla conoscenza dei dettagli architetturali della macchina utilizzata Indipendenza dalle caratteristiche peculiari dell architettura (processore) su cui il programma va eseguito (portabilità) Ideati non per essere compresi direttamente da macchine reali, ma da macchine astratte, in grado di effettuare operazioni più di alto livello rispetto alle operazioni elementari dei processori reali Permettono l uso di librerie di funzionalità già scritte (riusabilità del codice) Valeria Cardellini 2 Vantaggi e svantaggi dell assembler Vantaggio: la dipendenza dall architettura del calcolatore permette Ottimizzazione delle prestazioni (maggiore efficienza) Programmi (potenzialmente) più compatti Massimo sfruttamento delle potenzialità dell hardware sottostante Importante per Programmare controller di processi e macchinari (anche real-time) Programmazione di apparati limitati (embedded computer, dispositivi portatili, telefonini cellulari, ) Principali svantaggi della programmazione Strutture di controllo in forme limitate (minore espressività) Necessario conoscere i dettagli dell architettura Mancanza di portabilità su architetture diverse Difficoltà di comprensione, possibile lunghezza maggiore, facilità di errore rispetto a programmi scritti in linguaggio ad alto livello (minore produttività del programmatore) Valeria Cardellini 3

2 Compilazione Nella prima fase, il programma ad alto livello viene tradotto nel linguaggio assembler utilizzando un apposito programma detto compilatore Dopo la fase di compilazione, il programma scritto il linguaggio assembler viene tradotto in linguaggio macchina utilizzando un apposito programma detto assemblatore (assembler) Spesso con il termine compilazione si indica l intero processo di traduzione da linguaggio ad alto livello a linguaggio macchina (essendo l assemblatore spesso integrato con il compilatore) Il processo di compilazione Programma sorgente compilatore hello.c Programma in linguaggio assembler hello.s assemblatore Programma in linguaggio macchina (codice oggetto) caricatore hello.out Il programma sorgente è scritto in un linguaggio ad alto livello (ad es., C) Il codice oggetto, scritto in linguaggio macchina, viene memorizzato su disco Il caricatore (loader) carica il programma in memoria principale per l esecuzione Programma in memoria Valeria Cardellini 4 Valeria Cardellini 5 Il linker Il linker (link editor o collegatore) ha il compito di collegare tra loro vari moduli che compongono lo stesso programma Programma sorgente suddiviso in più file che vengono compilati separatamente creando diversi file oggetto Utilizzo di funzioni di libreria Il processo di compilazione (2) Programma sorgente compilatore Programma in linguaggio assembler Il linker collega tra loro i file contenenti il codice oggetto dei vari moduli che costituiscono il programma, unendovi anche il codice delle funzioni di libreria utilizzate, producendo un file contenente il codice eseguibile, memorizzato su disco assemblatore Oggetto: modulo in linguaggio macchina linker Oggetto: libreria di funzioni caricatore Valeria Cardellini 6 Eseguibile: programma in linguaggio macchina Programma in memoria Valeria Cardellini 7

3 Alcuni principi progettuali Le istruzioni sono codificate in forma binaria I programmi vengono immagazzinati in memoria insieme ai dati Concetto di programma memorizzato In memoria istruzioni e operandi, che devono essere entrambi trasferiti dalla memoria al processore Le istruzioni non sono di per sé distinguibili rispetto agli altri tipi di informazione in memoria Solo l interpretazione da parte del processore stabilisce se una data configurazione di bit è da considerarsi come un dato o un istruzione Storicamente Architettura introdotta nel 1946 da Von Neumann Opposta alla architettura Hardware, in cui lo spazio di memoria è separato per dati e programmi (impiegata in calcolatori destinati a specifici campi applicativi, ad es. elaborazione dei segnali) Valeria Cardellini 8 I principi della progettazione L obiettivo è avere un set di istruzioni che Faciliti la costruzione della macchina Semplicità per il progettista Faciliti la costruzione dei compilatori Ottimizzi i costi di produzione Permetta prestazioni elevate Competitività sul mercato Principio della semplicità della realizzazione: semplice significa economico (semplicità = regolarità) affidabile di facile apprendimento ed uso (per i programmatori) di facile traduzione (per i compilatori) Valeria Cardellini 9 Architettura MIPS Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e sviluppata da MIPS Technologies negli anni 90 ( Tecnologia attualmente utilizzata da Sony (Playstation, Playstation 2, AIBO) Nintendo 64 Router CISCO Stampanti, macchine fotografiche digitali, palmtop Set-top box, DVD TV al plasma Rappresenta un buon modello architetturale per la didattica, perché è un architettura semplice da comprendere Valeria Cardellini 10 Operazioni aritmetiche Le informazioni sono codificate in dati I dati sono rappresentati da numeri Esempio Per effettuare a=b+c e a=b-c add a, b, c sub a, b, c Ogni istruzioni aritmetica in MIPS esegue solo una operazione e deve avere sempre 3 operandi Principio progettuale: la semplicità favorisce la regolarità Il prezzo della semplicità Per effettuare f = (g+h)-(i+j) add t0, g, h add t1, i, j sub f, t0, t1 # calcolo t0=g+h # calcolo t1=i+j # calcolo f=t0-t1 NB: gli operandi non sono ancora quelli reali Commento su ogni linea preceduto da # Valeria Cardellini 11

4 Gli operandi A differenza dei linguaggi ad alto livello, gli operandi devono provenire da speciali locazioni di memoria all interno del processore, dette registri Nei linguaggi ad alto livello non ci si preoccupa di dover portare i dati dalla memoria ai registri e dai registri alla memoria E compito del compilatore inserire le istruzioni necessarie Caratteristiche dei registri Elevata velocità di accesso In numero limitato Altro principio progettuale: piccolo = veloce Usando i registri Si riduce il traffico con la memoria L esecuzione del programma è più veloce Migliora la densità del codice I registri Il livello ISA dell architettura MIPS richiede che Gli operandi delle istruzioni provengano dai registri Architettura di tipo load-store (o registro-registro) Il processore possiede un numero limitato di registri Il processore MIPS possiede 32 registri di tipo general-purpose (GPR), ciascuno dei quali è composto da 32 bit (parola) Il processore MIPS possiede ulteriori 32 registri da 32 bit per le operazioni in virgola mobile (floating point), detti FPR Per convenzione, per denotare i registri si usano nomi simbolici preceduti da $ Convenzione MIPS per rappresentare i registri: $s0, $s1, per i registri che contengono variabili $t0, $t1, per i registri di uso temporaneo I registri possono anche essere indicati direttamente mediante il loro numero (0,, 31) preceduto da $ (quindi $0,, $31) Valeria Cardellini 12 Valeria Cardellini 13 Il ruolo del compilatore Consideriamo il seguente segmento di programma C che utilizza 5 variabili f = (g+h)-(i+j) Il compilatore associa alle variabili presenti nel programma i registri presenti nel processore Ad esempio, alle variabili f, g, h, i e j sono associati i registri $s0, $s1, $s2, $s3 e $s4 Il compilatore introduce due variabili temporanee (t0 e t1) che associa a due registri temporanei $t0 e $t1 add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 # g+h # i+j # f = (g+h)-(i+j) Le operazioni e gli operandi Le istruzioni MIPS consentono operazioni di tipo diverso classificabili nelle quattro categorie Istruzioni aritmetiche-logiche (es., somma, moltiplicazione, AND) Istruzioni di trasferimento da/verso memoria Istruzioni per il controllo del flusso del programma Istruzioni di supporto alle procedure Gli operandi Accesso ai registri del processore Accesso alla memoria Necessarie due modalità di trasferimento tra memoria e registri del processore Load (caricamento) o read (lettura) Store (memorizzazione) o write (scrittura) Uso di costanti Valeria Cardellini 14 Valeria Cardellini 15

5 Istruzioni aritmetiche-logiche In MIPS un istruzione aritmetico-logica possiede tre operandi: i due registri contenenti i valori da elaborare (registri sorgente) ed il registro contenente il risultato (registro destinazione) L ordine degli operandi è fisso: prima il registro contenente il risultato dell operazione e poi i due operandi Esempio: istruzione add Serve per sommare il contenuto di due registri sorgente rs e rt e porre in rd la somma del contenuto di rs e rt add rd, rs, rt Esempio: istruzione sub Serve per sottrarre il contenuto di due registri sorgente rs e rt e porre in rd la differenza del contenuto di rs e rt sub rd, rs, rt Valeria Cardellini Indirizzamento della memoria nel MIPS. Memoria $0 $1 $31. Processore Memoria come un array monodimensionale, le cui locazioni sono indicizzate tramite indirizzi Dimensione della parola pari a 32 bit (4 byte) L indirizzamento di una parola è legato a 4 byte (vincolo dell allineamento) Quindi gli indirizzi delle parole differiscono di 4 Memoria formata da 2 30 parole Per motivi di efficienza, è possibile l indirizzamento a livello dei singoli byte che compongono una parola Valeria Cardellini 17 Ordinamento dei byte L accesso è generalmente con indirizzamento del byte L indirizzo di una parola corrisponde all indirizzo di uno dei byte all interno della parola Esistono due convenzioni per ordinare i byte all interno di una parola (endianess) Big Endian: il byte il cui indirizzo è x 00 è nella posizione più significativa della parola (big end) Little Endian: il byte il cui indirizzo è x 00 è nella posizione meno significativa della parola (little end) Esempio: parola di 32 bit Little Endian Indirizzo Byte Byte Word Word Intel 80x06 è Little Endian, MIPS può essere sia Big Endian sia Little Endian in dipendenza del valore logico su di un pin Big Endian Valeria Cardellini Allineamento dei byte e terminologia L allineamento richiede che la parola inizi ad un indirizzo multiplo della sua dimensione Allineato In MIPS, allineamento della parola ad un indirizzo multiplo di 4 (equivale a indirizzo mod 4 = 0) Half word (16 bit) allineata ai multipli di 2 Non allineato La mancanza di allineamento causa un incremento della complessità dell hardware ed un numero maggiore di accessi in memoria Terminologia delle sequenze di bit di particolare lunghezza 4 bit: nibble 8 bit: byte 16 bit: half-word 32 bit: word 64 bit: double-word Valeria Cardellini 19

6 Istruzione di trasferimento dati MIPS fornisce due istruzioni di base per il trasferimento di dati tra registri del processore e memoria lw (load word): per trasferire una parola di memoria in un registro del processore sw (store word): per trasferire il contenuto di un registro del processore in una parola di memoria Le istruzioni lw e sw richiedono come argomento l indirizzo della locazione di memoria sulla quale devono operare Valeria Cardellini 20 Istruzioni load e store L istruzione di load trasferisce una copia dei dati contenuti in una specifica locazione di memoria ai registri del processore, lasciando inalterata la parola di memoria Il processore invia l indirizzo della locazione desiderata alla memoria e richiede un operazione di lettura del suo contenuto La memoria effettua la lettura dei dati memorizzati all indirizzo specificato e li invia al processore L istruzione di store trasferisce il contenuto di un registro del processore in una specifica locazione di memoria, sovrascrivendo il contenuto precedente di quella locazione Il processore invia l indirizzo della locazione desiderata alla memoria insieme ai dati che vi devono essere scritti, e richiede un operazione di scrittura La memoria effettua la scrittura dei dati all indirizzo specificato Valeria Cardellini 21 Istruzione lw In MIPS, l istruzione lw ha tre argomenti Il registro destinazione in cui caricare la parola letta dalla memoria Una costante o spiazzamento (offset) Un registro base (base register) che contiene il valore dell indirizzo base (base address) da sommare all offset Indirizzamento registro base (o con spiazzamento) L indirizzo della parola di memoria da caricare nel registro è ottenuto sommando il contenuto del registro base alla costante Esempio lw $s1, 100($s2) # $s1 = M[$s2+100] Al registro destinazione $s1 è assegnato il valore contenuto all indirizzo di memoria ($s2+100) Istruzione sw In MIPS, l istruzione sw ha tre argomenti, analogamente all istruzione lw Il registro sorgente, il cui contenuto deve essere scritto in memoria Una costante o spiazzamento (offset) Un registro base (base register) che contiene il valore dell indirizzo base (base address) da sommare all offset Indirizzamento registro base (o con spiazzamento) L indirizzo della parola di memoria da sovrascrivere è ottenuto sommando il contenuto del registro base alla costante Esempio sw $s1, 100($s2) # M[$s2+100] = $s1 Alla locazione di memoria di indirizzo ($s2+100) è assegnato il valore contenuto nel registro sorgente $s1 Valeria Cardellini 22 Valeria Cardellini 23

7 Istruzioni lw e sw: esempio di compilazione Codice C: A[12] = h+a[8]; Supponiamo che: La variabile h è associata al registro $s2 L indirizzo del primo elemento dell array (base address) è contenuto nel registro $s3 Strutture dati (ad es. array) sono allocate in memoria Codice MIPS: lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 48($s3) # $t0=m[$s3+32] # $t0=$s2+$t0 # M[$s3+48]=$t0 Valeria Cardellini 24 Array: esempio Codice C: g = h+a[i]; Supponiamo che: A è un array di 100 word Le variabili g, h e i sono associate rispettivamente ai registri $s1, $s2 e $s4 L indirizzo del primo elemento dell array (base address) è contenuto nel registro $s3 L elemento i-esimo dell array sarà nella locazione di memoria di indirizzo ($s3 + 4*i) i è l indice dell array ad alto livello Il fattore 4 dipende dall indirizzamento della memoria nel MIPS A[0] $s3 A[1] $s3+4 A[2] $s3+8. Valeria Cardellini 25 Array: esempio (2) Codice MIPS: Caricamento dell indirizzo di A[i] nel registro temporaneo $t1 add $t1, $s4, $s4 add $t1, $t1, $t1 add $t1, $t1, $s3 Trasferimento di A[i] nel registro temporaneo $t0 lw $t0, 0($t1) # $t0=a[i] Somma tra h e A[i] e risultato in g add $s1, $s2, $t0 # $t1=2*i # $t1=4*i # $t1=ind di A[i] # g=h+a[i] Register spilling In genere i programmi usano più variabili di quanti sono i registri del processore Il compilatore cerca di mantenere le variabili usate più frequentemente nei registri e le altre variabili in memoria, usando istruzioni di load/store per trasferire le variabili tra registri e memoria Il tempo di accesso ai registri è minore del tempo di accesso alla memoria La tecnica di mettere le variabili meno usate (o usate successivamente) in memoria viene detta register spilling Valeria Cardellini 26 Valeria Cardellini 27

8 Rappresentazione dei registri Una convenzione per assegnare nomi dei registri e numeri corrispondenti I registri $s0, $s1,, $s7 (detti registri saved) Corrispondono ai registri $16, $17,, $23 I registri $t0, $t1,, $t7 (detti registri temporaries) Corrispondono ai registri $8, $9,, $15 Il registro $zero Corrisponde al registro $0 Contiene sempre il valore 0 Valeria Cardellini 28 Formato istruzioni aritmetiche La rappresentazione binaria di un istruzione assembler è composta da 32 bit (stessa dimensione della parola di memoria) Essa segue il formato di tipo R (istruzione register) per un istruzione logico-aritmetica tra registri Formato istruzioni di tipo R op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit Ai vari campi sono assegnati dei nomi mnemonici op: opcode (codice operativo), indica il tipo di istruzione rs: registro contenente il primo operando sorgente rt: registro contenente il secondo operando sorgente rd: registro destinazione contenente il risultato shamt: shift amount (scorrimento) funct: function, la variante specifica dell operazione indicata nel campo op Valeria Cardellini 29 Istruzioni di tipo R: esempio op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit add $t0, $s1, $s2 non usato bit 5 bit 5 bit 5 bit 5 bit 6 bit bit 5 bit 5 bit 5 bit 5 bit 6 bit Valeria Cardellini 30 Formato istruzioni di tipo I Il formato di tipo R non è adatto a rappresentare istruzioni di tipo load/store All offset sarebbe riservato un campo di 5 bit (al massimo costanti di dimensione pari a 32) Si usa un formato diverso, detto di tipo I (istruzione immediate), sempre di 32 bit Formato istruzioni di tipo I op rs rt address 6 bit 5 bit 5 bit 16 bit Significato dei campi op: opcode, indica il tipo di istruzione rs: registro base rt: registro destinazione (load) o sorgente (store) address: spiazzamento (±2 15 byte o 2 13 parole rispetto all indirizzo indicato dal registro base) Valeria Cardellini 31

9 Istruzioni di tipo I: esempio op rs rt address 6 bit 5 bit 5 bit 16 bit lw $t0, 1000($s3) bit 5 bit 5 bit 16 bit bit 5 bit 5 bit 16 bit La memorizzazione del programma: esempio Codice C: A[300] = h+a[300]; Codice MIPS: lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) Assumendo che: $t1 è il registro base $s2 corrisponde a h Valeria Cardellini 32 Traducendo da decimale a binario si ottiene la rappresentazione binaria del programma Valeria Cardellini 33 Uso alternativo dell indirizzamento con spiazzamento L indirizzamento con spiazzamento prevede l uso di Indirizzo base contenuto nel registro base Spiazzamento specificato nell istruzione tramite una costante Esempio: lw $t0, 16($s0) Se $s0=100, in $t0 viene caricata la parola di memoria di indirizzo 116 In alternativa, si può invertire l uso del registro e della costante Indirizzo base specificato nell istruzione tramite una costante Spiazzamento contenuto nel registro indice (detto in precedenza registro base) Detto indirizzamento indicizzato o indicizzazione Esempio: lw $t0, 100($s0) Se $s0=16, in $t0 viene caricata la parola di memoria di indirizzo 116 I due usi dell indirizzamento con spiazzamento sono equivalenti? Valeria Cardellini 34 Uso alternativo dell indirizzamento con spiazzamento (2) La scelta di porre l indirizzo base nel registro (anziché nella costante) Permette di utilizzare 32 bit per indicare la locazione di inizio Quindi di accedere a tutta la memoria Viceversa, ponendo l indirizzo base nella costante Si possono utilizzare solo 16 bit per indicare la locazione di inizio (vedi formato delle istruzioni di tipo I) La scelta di porre lo spiazzamento nel registro Permette di scorrere l array incrementando l indice Da qui il nome di indirizzamento indicizzato e registro indice Valeria Cardellini 35

L insieme delle istruzioni

L insieme delle istruzioni L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) La programmazione dei calcolatori Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App. Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

L insieme delle istruzioni (6)

L insieme delle istruzioni (6) L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso

Dettagli

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

Il Linguaggio Assembly: Gestione della memoria e controllo

Il Linguaggio Assembly: Gestione della memoria e controllo Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

Dettagli

INFORMATICA. L informatica comprende:

INFORMATICA. L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

Dettagli

Traduzione e interpretazione

Traduzione e interpretazione Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

La programmazione dei calcolatori. Architetture dei Calcolatori (Lettere. Benefici dei linguaggi ad alto livello. Vantaggi e svantaggi dell assembler

La programmazione dei calcolatori. Architetture dei Calcolatori (Lettere. Benefici dei linguaggi ad alto livello. Vantaggi e svantaggi dell assembler La programmazione dei calcolatori Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Prof. Francesco Lo Presti Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio 02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Dettagli

Linguaggi di programmazione. Parte VII. Traduzione e collegamento. Interpretazione. Traduzione

Linguaggi di programmazione. Parte VII. Traduzione e collegamento. Interpretazione. Traduzione Linguaggi di programmazione Parte VII Traduzione e collegamento Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore leggibilità Facilità di documentazione Minore controllo dell

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7

Dettagli

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie MIPS & SPIM Modulo del Corso di Architettura degli Elaboratori Nicola Paoletti Università di Camerino Scuola di Scienze e Tecnologie 10 Aprile 2013 AA 2012/2013 Informazioni utili (1/2) Email: nicola.paoletti@unicam.it

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

Il linguaggio macchina

Il linguaggio macchina Università degli Studi di Palermo Facoltà di Ingegneria Il linguaggio macchina Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Linguaggi e moduli. Dott. Franco Liberati

Linguaggi e moduli. Dott. Franco Liberati (canale A-D) A Linguaggi e moduli Dott. Franco Liberati Linguaggi di programmazione Compilatore Assemblatore Linker (collegatore) LINKER COMPILATORE ASSEMBLATORE LINGUAGGI DI PROGRAMMAZIONE Linguaggio

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer? Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Cos'è un computer? 3 Cos'è un computer? E' un dispositivo in grado di Elaborare

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 26 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (8 punti)

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS Claudia Raibulet raibulet@disco.unimib.it Codifica e Rappresentazione dell Informazione Informazioni Generali (I)

Dettagli

Laboratorio di Calcolo Linguaggi di programmazione

Laboratorio di Calcolo Linguaggi di programmazione Laboratorio di Calcolo Linguaggi di programmazione Software Insieme di istruzioni e dati trattati dal computer Le istruzioni possono essere a diversi livelli Istruzioni macchina: insieme limitato di funzioni

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Dettagli

Lezione 16. Il Software di base

Lezione 16. Il Software di base Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Architettura dei calcolatori 2 Cos'è un computer?

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di MIPS: modello di programmazione Anno Accademico 2007/2008 Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva eseguibili dalla CPU

Dettagli

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I) Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE Laboratorio di Architettura lezione 5 Massimo Marchiori W3C/MIT/UNIVE Da Alto a Basso livello: compilazione Come si passa da un linguaggio di alto livello a uno di basso livello? Cioe a dire, come lavora

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

Università degli Studi di Roma La Sapienza

Università degli Studi di Roma La Sapienza Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Indice degli argomenti Introduzione Assembler, compilatore, linker, programma

Dettagli

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016 Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione

Dettagli

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer

Dettagli

I formati delle istruzioni

I formati delle istruzioni Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Cos è un Calcolatore? Un computer (calcolatore) è una macchina

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli