LABORATORIO CPU. LDC 10 ;00 Caricare una costante nel Accu STO 31 ;01 Salvare il valore del Accu in cella [31] HLT ;02 STOP.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LABORATORIO CPU. LDC 10 ;00 Caricare una costante nel Accu STO 31 ;01 Salvare il valore del Accu in cella [31] HLT ;02 STOP."

Transcript

1 LABORATORIO CPU LDC 10 ;00 Caricare una costante nel Accu STO 31 ;01 Salvare il valore del Accu in cella [31] HLT ;02 STOP 30

2 Un CPU radicalmente ridotto qui si presenta un processore minimale, con solo otto istruzioni, che verrà usato in seguito per presentare e provare in pratica alcuni algoritmi di base. Un istruzione (codice operazione + operandi) = 8 bit (1 byte): 3 bit per il codice dell'istruzione (quindi, 2 3 =8 istruzioni) 5 bit (2 5 =32 valori) per costante (valori ) o indirizzi della RAM ( ) Tre registri: IR, PC, un registro dati (Accumulatore). In seguito le istruzioni: I. Trasferimento dati: LOD ind LDC cost STO ind carica nell Acc il contenuto della memoria con indirizzo ind carica la costante cost nell Acc trasferisce il contenuto dell Acc nella memoria con indirizzo ind II. Aritmetica: ADD ind SUB ind III. Controllo del flusso: JMP ind salto all indirizzo ind se il valore nell Acc >= 0 JMZ ind salto all indirizzo ind se il valore nell Acc = 0 HLT ferma l esecuzione del programma aggiunge all Acc il contenuto della memoria con indirizzo ind sottrare dall Acc il contenuto della memoria con indirizzo ind info@stoianov.it 31

3 Linguaggio Assembler: Sintassi Memoria del simulatore: nel CPU: IR, PC, un accumulatore RAM: 32 celle per programma & dati Programma = Dati + Algoritmo + Commenti istruzioni: localizzati all'inizio della RAM dati: localizzati alla fine della RAM Per prima vengono definiti i dati da utilizzare DEF indirizzo valore ad es.: [ DEF ] pp. possiamo utilizzare dati anche all'interno del programma: (LDC valore ) Segue la descrizione dell'algoritmo con una serie di istruzioni Ciascun'istruzione viene commentata utilizzando ; all'inizio dei commenti, enumerare gli istruzioni, partendo da 00 ad es.: [ LDC -1 ;03 Acc=-1 ] gli indirizzi servono a riferire gli istruzioni nei salti ad es.: [ JMP 03 ;09 Salto al 3] info@stoianov.it 32

4 Il primo programma (trasferimento dati) ; Imaginary Computer v4 ; OBBIETIVI: ; -fare il primo programma ; il compito: Assegnare a cella di memoria [31] una costante: [31]=10 ; -scrivere un programma in un file testuale ; -copiare il programma dal file alla finestra codice-assembler; ; -Compilare e Caricare il programma nella memoria; ; -Far notare che il programma va caricata dal indirizzo 0 ; -Eseguire passo per passo ; -Osservare come cambiano le registri e la memoria ad ogni passo ; IL PROGRAMMA LDC 10 ;00 Caricare una costante nel Accu STO 31 ;01 Salvare il valore del Accu in cella [31] della memoria HLT ;02 STOP info@stoianov.it 33

5 Primi passi: Aritmetica ; Imaginary Computer v4 ; OBBIETIVI : imparare a fare un programma ; compito: X=X+Costante (X=X+1) ;-definire una variabile (cella di memoria) ed assegnarle un valore iniziale ; usare celle con indirizzi grandi (31, 30, 29, ) (programma sta in basso) ;-caricare nell'accumulatore una costante ;-aggiungere all'accumulatore il contenuto della cella di memoria ;-trasferire il risultato nella stessa cella di memoria ; DATI DEF 31 2 ; mem[31]=x ; PROGRAMMA LDC 1 ; 00 Acc=1 ADD 31 ; 01 Acc=Acc+X STO 31 ; 02 X=X+1 HLT ; 03 fermi! info@stoianov.it 34

6 Primi passi: Aritmetica con 2 variabili ; Imaginary Computer v4 ; OBBIETIVI: imparare a fare elaborazione aritmetiche ; compito: X=X+Y ;- definire due variabili, X e Y come celle di memoria, [31] e [30] ;- caricare nell'accumulatore una di loro ;- aggiungere all'accumulatore l'altra ;- copiare il contenuto dell'accumulatore nella cella X ; DATI DEF 31 2 ; mem[31]=x DEF 30 6 ; mem[30]=y ; IL PROGRAMMA LOD 31 ; 00 Acc=X ADD 30 ; 01 Acc=X+Y STO 31 ; 02 X=X+Y HLT ; 03 fermi! info@stoianov.it 35

7 Primi passi: Elaborazione condizionale ; Imaginary Computer v4 ; OBBIETIVI: realizzare elaborazione condizionale semplice: non eseguire un pezzo di codice, utilizzando salto condizionale ; compito: se una variabile X>=0, assegnare alla variabile Y=1,altrimenti Y=0 ; -definire la variabile Y, dandole il valore iniziale 1 ; -caricare nell'accumulatore la variabile da verificare ; -saltare se necessario un pezzo di codice in quale si assegna Y=0 ; DATI DEF 31 5 ; mem[31]=x DEF 30 1 ; mem[30]=1 ; IL PROGRAMMA LOD 31 ; 00 Acc=X JMP 04 ; 01 se Acc>=0, vai a HLT LDC 0 ; 02 altrimenti: (i) Acc=0 STO 30 ; 03 (ii) Y=Acc (Y=0) HLT ; 04 fermi! info@stoianov.it 36

8 Elaborazione condizionale complessa ; Imaginary Computer v4 ; OBBIETIVI: elaborazione condizionale complesso; gestire più condizioni ; compito: X=[31];Y=[30]; Se (X>0) Y=1; Se (X=0), Y=0; Se (Y<0), Y=-1 ; DATI DEF 31 5 ; mem[31]=x ; PROGRAMMA LOD 31 ; 00 Acc=X JMP 05 ; 01 se Acc>=0, vai a "metti 0 o 1" LDC -1 ; 02 else Acc=-1 STO 30 ; 03 Y=-1 (x<0) HLT ; 04 FERMI JMZ 09 ; 05 se Acc=0, vai a "metti 0" LDC 1 ; 06 altrimenti Acc=1 STO 30 ; 07 Y=1 (x>0) HLT ; 08 FERMI LDC 0 ; 09 Acc=0 STO 30 ; 10 Y=0 (X=0) HLT ; 11 FERMI info@stoianov.it 37

9 Elaborazione condizionale (3) ; Imaginary Computer v4 ; OBBIETIVI: formule aritmetiche condizionali ;-compito: [31]=X; [30]=Y; X=X+ Y ;-verificare se Y è positivo o negativo e quindi aggiungerlo o sottrarlo da X utilizzando due diversi pezzi di codi; fermarsi dopo ognuno di questi. ; DATI DEF 31 5 ; mem[31]=x DEF 30-3 ; mem[30]=y ; PROGRAMMA LOD 30 ; 00 Acc=Y JMP 06 ; 01 Acc>=0? X=X+Y LOD 31 ; 02 Acc=X SUB 30 ; 03 Acc=X-Y STO 31 ; 04 X=Acc, cioè, X=X-Y HLT ; 05 STOP ADD 31 ; 06 (da 00: Acc=Y). Qui: Acc=Y+X STO 31 ; 07 X=Acc, cioè, X=X+Y HLT ; 08 STOP info@stoianov.it 38

10 Diagrammi di Flusso E' facile leggere le singole istruzioni di un programma scritta nel codice mnemonico, ma è difficile da capire la sua logica, sopratutto se nel programma c'e sono tanti cambi del flusso. La rappresentazione più apparente del flusso dei programmi utilizza Diagrammi di flusso. Essi sono costruiti dai seguenti blocchi fondamentali: elaborazione decisione I/O Inizio / Fine Ogni passo elementare di un algoritmo è rappresenta da un blocco. La sequenza di passi che costruiscono l'algoritmo si rappresenta con la sequenza dei passi elementari, rappresentati dai blocchi, collegati con frecce. info@stoianov.it 39

11 Esecuzione non-condizionale(2) Esempio: Aggiungere Y al X START mem[31]=x mem[30]=y X = X + Y HALT ADD X,Y? NO :-( START mem[31]=x mem[30]=y Acc = X Acc = Acc + Y X = Acc HALT DEF 31 2 DEF 30 6 LOD 31 ADD 30 STO 31 ; DATI ; mem[31]=x ; mem[30]=y ; PROGRAMMA ; 00 X Acc ; 01 Acc=X+Y ; 02 Acc X HLT ; 03 fermi! A sinistra: la realizzazione della somma X=X+Y con un processore completo A destra: la realizzazione della stessa somma, utilizzando il nostro processore ridotto. info@stoianov.it 40

12 Esecuzione non-condizionale ESERCIZIO Scambiare il contenuto di due variabili X e Y START Def X,Y Z = X X = Y Y = Z COMPITO Scrivere un programma in Assembler per il nostro CPU minimale che realizza questo algoritmo HALT info@stoianov.it 41

13 Esecuzione condizionale Eseguire una serie di elaborazioni solo se una condizione è vera Esempio: Aggiungere Y ad X solo se Y<0 verifica della condizione Se vero elaborazioni Se falso se vero Y < 0? X = X + Y se falso info@stoianov.it 42

14 Esecuzione condizionale Esempio: Aggiungere Y al X solo se Y<0 Y >= 0? se falso X = X + Y se vero ; DATA DEF 31 5 ; mem[31]=x DEF 30 3 ; mem[30]=y ; PROGRAMMA LOD 30 ; 00 Y Acc JMP 04 ; 01 se Acc>0 HLT ADD 31 ; 02 Acc=Acc+X STO 31 ; 03 Y+X X HLT ; 04 fermi! info@stoianov.it 43

15 Esecuzione condizionale (2) falso Elaborazioni-B verifica di condizione vero Elaborazioni-A La memoria RAM è lineare (non ha una natura spaziale, come, ad esempio, il cervello) Come implementare questa schema? 44

16 vero Confronto di due numeri Obbiettivo: confrontare due numeri ed eseguire qualcosa secondo il risultato di questo confronto Compito: trovare il massimo tra due numeri Dati: X,Y:[31,30] Mettere il risultato MAX(X,Y) in cella 29 Metodo: salto condizionato dalla differenza tra X e Y falso X>=Y max=y max=x Non - eseguire questo codice utilizzando salto noncondizionale ; DATA DEF 31 5 ; X DEF 30 4 ; Y ; PROGRAMMA LOD 31 ; 00 Acc = X SUB 30 ; 01 Acc = X Y JMP 07 ; 02 X Y>=0? 07 LOD 30 ; 03 Y Acc STO 29 ; 04 Acc MAX LDC 00 ; 05 Acc = 0 JMZ 09 ; 06 HLT LOD 31 ; 07 X Acc STO 29 ; 08 Acc MAX HLT ; 09 fermi! info@stoianov.it 45

17 Esercizi da fare da soli Obbiettivo: confrontare due numeri; assegnare uno o altro valore ad un'altra variabile secondo il risultato del confronto DATI:[31]=X,[30]=Y,[29]=Z; Compito: Se X>Y, Z=1, altrimenti Z=0 Obbiettivo: confronto ed ordine di due numeri DATI:[29],[30]; Compito: ordinare le celle 29,30 in modo crescente info@stoianov.it 46

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1 Il CPU UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) info@stoianov.it La struttura del Calcolatore UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) CPU INPUT OUTPUT MEMORIA CENTRALE MEMORIA ESTERNA info@stoianov.it

Dettagli

Programmazione al livello del CPU

Programmazione al livello del CPU Corsi di Laurea in Biologia e Biologia Molecolare Università di Padova, AA 2012/2013 Programmazione al livello del CPU www.stoianov.it info@stoianov.it 1 Esecuzione condizionale Eseguire blocco A o blocco

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura

Dettagli

Accumulatore Vettori. Preparazione per l'esame. Corsi di Laurea in Biologia e Biologia Molecolare Università di Padova, AA 2012/2013

Accumulatore Vettori. Preparazione per l'esame.   Corsi di Laurea in Biologia e Biologia Molecolare Università di Padova, AA 2012/2013 Corsi di Laurea in Biologia e Biologia Molecolare Università di Padova, AA 2012/2013 Accumulatore Vettori Preparazione per l'esame www.stoianov.it info@stoianov.it 1 ACCUMULATORE Se abbiamo istruzioni

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

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

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina Architettura considerata in CPUSim Linguaggio macchina -- esempio in CPUSim Manuale di CPU Sim Memoria con 128 celle Indirizzi da 12 bit Registri usuali per un architettura di Von Neumann (, IR,, ) Un

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

Parte 3. Linguaggio Macchina e Assembler

Parte 3. Linguaggio Macchina e Assembler Parte 3 Linguaggio Macchina e Assembler LINGUAGGIO MACCHINA Descriveremo una CPU MINIMA dotata di un certo insieme di istruzioni I ciascuna realizzata da un corrispondente circuito C I. Questo insieme

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

CPUSim. Laboratorio 30/11/2016

CPUSim. Laboratorio 30/11/2016 CPUSim Laboratorio 30/11/2016 Tommaso Padoan e-mail: padoan@math.unipd.it CPUsim Scaricare il simulatore: www.math.unipd.it/~sperduti/architettura1.html scorrere fino a sezione Simulatori, aprire la pagina

Dettagli

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II) 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.

Dettagli

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

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

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 016/017 Sommario Funzionamento del

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://people.unica.it/gianlucamarcialis A.A. 2018/2019 Docente: Gian Luca Marcialis

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione

Dettagli

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER 1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione Informazioni varie Lezione 18 Il Set di Istruzioni (5) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno La lezione di martedì 20 maggio (9-12) non si tiene

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 2: Prime Istruzioni -Concetti Fondamentali

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

informatica di base per le discipline umanistiche

informatica di base per le discipline umanistiche informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università di Pavia (per iniziare ) quinta lezione: la sintassi

Dettagli

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena.

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena. I flow chart Informatica Generale 14/15 Scienze della comunicazione cristina gena cgena@di.unito.it http://www.di.unito.it/~cgena/teaching.html Diagrammi di flusso SAR Inizio del processo (Blocco di start)

Dettagli

Docente: Ivilin Stoianov Assistenti: Michele De Filippo, Alberto Testolin. Lab P150 (Paolotti) sito web: www.stoianov.it Email: info@stoianov.

Docente: Ivilin Stoianov Assistenti: Michele De Filippo, Alberto Testolin. Lab P150 (Paolotti) sito web: www.stoianov.it Email: info@stoianov. Corso di Laurea in Biologia / Biologia Molecolare Università di Padova, AA 2011/2012 Laboratorio CPU Docente: Ivilin Stoianov Assistenti: Michele De Filippo, Alberto Testolin Lab P150 (Paolotti) sito web:

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

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

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

informatica di base per le discipline umanistiche

informatica di base per le discipline umanistiche informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università di Pavia (per iniziare ) quarta lezione: circuiti,

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch Decode Execute Program Counter controllare esegue prossima Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo

Dettagli

Elementi di Architettura

Elementi di Architettura Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli

Tavola di verita. Tavola di verita f = (A+not(B)) x (not(a)+c) x not(a) A+ not(a) Tavole di verita. Dal problema alla rete combinatoria.

Tavola di verita. Tavola di verita f = (A+not(B)) x (not(a)+c) x not(a) A+ not(a) Tavole di verita. Dal problema alla rete combinatoria. Tavola di verita Esercizi = C+not()not()C C 2 Tavole di verita ( + not()) x not() (not() + ) x (not()+not()) (not() + not()) x (not() x ) 3 Tavola di verita = (+not()) x (not()+c) x not() C + not() not()

Dettagli

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni

Dettagli

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 3.1 MACCHINE A REGISTRI 1 (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Fondamenti di Informatica B

Fondamenti di Informatica B Fondamenti di Informatica B Lezione n.9 Alberto Broggi Gianni Conte A.A. 2005-2006 Fondamenti di Informatica B DESCRIZIONE E PROGETTO A LIVELLO RTL ESEMPIO DI SISTEMA A LIVELLO RTL: IL MOLTIPLICATORE BINARIO

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma

Dettagli

Si ringraziano il Dott. Enrico Grisan e il Dott. Fabio Aiolli per il materiale didattico fornito

Si ringraziano il Dott. Enrico Grisan e il Dott. Fabio Aiolli per il materiale didattico fornito Università degli Studi di Padova Corso di Laurea in Matematica A.A. 2008-2009 2009 INTRODUZIONE ALLA PROGRAMMAZIONE Barbara Di Camillo Si ringraziano il Dott. Enrico Grisan e il Dott. Fabio Aiolli per

Dettagli

Calcolatore = esecutore di algoritmi FONDAMENTI DI INFORMATICA 1. Una semplice architettura. Istruzioni e programma ARCHITETTURA DEI CALCOLATORI ALU

Calcolatore = esecutore di algoritmi FONDAMENTI DI INFORMATICA 1. Una semplice architettura. Istruzioni e programma ARCHITETTURA DEI CALCOLATORI ALU Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2/2 Calcolatore = esecutore di algoritmi Il calcolatore

Dettagli

Motorola 68000: primi programmi assembly

Motorola 68000: primi programmi assembly Corso di Calcolatori Elettronici I A.A. 2012-2013 Motorola 68000: primi programmi assembly ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici Organizzazione dei dati

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Lezione 17 Il Set di Istruzioni (3)

Lezione 17 Il Set di Istruzioni (3) Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

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

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Il processore - CPU (CENTRAL PROCESSING UNIT)

Il processore - CPU (CENTRAL PROCESSING UNIT) Il processore - CPU (CENTRAL PROCESSING UNIT) abbiamo visto Programmi e dati risiedono in file memorizzati in memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Dal linguaggio macchina al linguaggio C

Dal linguaggio macchina al linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Dal linguaggio macchina al linguaggio C Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente

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

Sistemi a microprocessore

Sistemi a microprocessore Sistemi a microprocessore Programma: Segnali analogici e digitali Uso di segnali digitali per la rappresentazione dei numeri interi La memoria e la CPU I programmi in linguaggio macchina La connessione

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense Circuiti e reti combinatorie Appendice A (libro italiano) + dispense Linguaggio del calcolatore Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e Anche per esprimere

Dettagli

PROGRAMMAZIONE (Corso A)

PROGRAMMAZIONE (Corso A) PROGRAMMAZIONE (Corso A) http://www.di.uniba.it/~proga/ Argomenti della lezione Diagrammi di flusso - Flow chart Diagrammi struturati - Sequenza, selezione, iterazione Teorema di Boehm-Jacopini Flow-chart

Dettagli

Architettura di un Elaboratore

Architettura di un Elaboratore Architettura di un Elaboratore Fabio Massimo Zanzotto Ricapitoliamo puntate precedenti Cosa abbiamo a disposizione: Concetto di algoritmo (con eventuale parametrizzazione) Rappresentazione dell informazione

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

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

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 Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Modello di von Neumann

Modello di von Neumann Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica 1 Interfaccia Periferica 2 Codifica dei dati e delle istruzioni La più piccola unità di informazione memorizzabile

Dettagli

Computer. Capitolo 2. 05/04/2012 continuazione 1

Computer. Capitolo 2. 05/04/2012 continuazione 1 Computer Capitolo 2 05/04/2012 continuazione 1 Le prestazioni del computer Velocità delle cpu, ossia numero d istruzioni eseguite nell unità di tempo; Dimensione delle RAM; Capacità e velocità in scrittura/

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Lezione 8 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 8 /33 Sommario! La

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio ECDL MODULO 1 Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo 3 - Elaborazione testi Modulo 4 Foglio Elettronico Modulo 5 Uso delle Basi di Dati

Dettagli

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI Progettare una unità centrale di elaborazione microprogrammata, dotata di registri ad uso generale di bit, che sia in grado di indirizzare una memoria di 64k

Dettagli

Circuiti Logici. Pagina web del corso:

Circuiti Logici. Pagina web del corso: Circuiti Logici Pagina web del corso: http://www.math.unipd.it/~aceccato Macchina hardware e macchina software Agli albori il computer era essenzialmente una CPU collegata ad una piccola RAM Ogni istruzione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 2-Iterazione 1 Prerequisiti Salto condizionato Salto incondizionato Espressione logica 2 1 Introduzione In alcuni casi si presenta la necessità di eseguire un ciclo, ossia

Dettagli

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

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

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop Diagrammi di flusso Un metodo per rappresentare graficamente gli algoritmi. Input/ Output sotto programma Start predicato Elaborazione Stop La programmazione strutturata Un algoritmo è strutturato in blocchi

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura del calcolatore Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli