Il linguaggio macchina
|
|
- Giuliano Porta
- 6 anni fa
- Visualizzazioni
Transcript
1 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
2 Il linguaggio macchina Come detto, le istruzioni del linguaggio macchina si compongono di due parti: codice operativo (sempre presente) e operandi (uno o più, ma in alcune istruzioni possono anche mancare) A titolo di esempio, prendiamo in considerazione un linguaggio molto semplice, in cui ogni istruzione ha al più un operando, appropriato all architettura che abbiamo illustrato (in questo linguaggio è scritto il programma dell esempio precedente) Se S è la lunghezza (in bit) di una istruzione, si ha: S = M + N dove M è il numero di bit riservati al CO e N è il numero di bit riservati agli operandi. La cardinalità dell insieme delle istruzioni eseguibili, ovvero il numero dei codici operativi differenti, è pertanto inferiore o uguale a 2 M. Invece N è legato al numero di locazioni indirizzabili (2 K ): deve essere N K, affinché tutte le celle di memoria possano essere indirizzate. In realtà, gli indirizzi di memoria possono essere rappresentati anche in forma sintetica, a seconda della modalità di indirizzamento utilizzata E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 2
3 Il linguaggio macchina Ovviamente la lunghezza S delle istruzioni è in relazione con la lunghezza H delle parole di memoria. Nel nostro esempio assumiamo S = H (ogni istruzione è esattamente contenuta in una cella di memoria), ma nei casi reali S può essere un multiplo di H (una istruzione è contenuta in più celle di memoria consecutive), oppure un sottomultiplo di H (più istruzioni possono essere allocate nella stessa cella di memoria). E anche possibile che la lunghezza delle istruzioni dipenda dall istruzione stessa: in tal caso l unità centrale determina il numero di locazioni di memoria interessate al momento della decodifica del codice operativo. Tenendo presenti le ipotesi fatte (S=H=M + N, con l operando che talvolta può essere assente), siamo adesso in grado di definire il nostro semplice linguaggio macchina. Esso comprende: -istruzioni di load e store dei due registri A e B di ingresso alla ALU, per la lettura e la scrittura in memoria; - istruzioni di lettura (read) e scrittura (write) su periferica (ne ipotizziamo una di input e una di output); E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 3
4 Il linguaggio macchina -istruzioni relative ad operazioni fra numeri interi: add, dif, mul, div; -istruzioni di salto (jump) incondizionato o condizionato dal valore di A: il salto avviene solo se il bit di segno in SR è posto a 0; -istruzioni di pausa (nop) e di arresto (halt). Riassumendo: CO CO simbolico Formato (simbolico) 0000 loada loada ind 0001 loadb loadb ind 0010 storea storea ind 0011 storeb storeb ind 0100 read read ind 0101 write write ind 0110 add add 0111 dif dif 1000 mul mul 1001 div div 1010 jump jump ind 1011 jumpp jumpp ind 1100 nop nop 1101 halt halt E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 4
5 Il linguaggio macchina Il programma dell esempio: si tratta di effettuare il calcolo dell espressione (a +b) * (c + d), leggendo i valori delle variabili dal dispositivo di input e scrivendo il risultato sul dispositivo di output. L algoritmo: -leggi i valori di a, b, c e d dal dispositivo di input; -somma i valori di a e b; -salva il risultato parziale; -somma i valori di c e d; -moltiplica il risultato con il parziale precedente; -scrivi il risultato finale sul dispositivo di output; -arresta l esecuzione del programma. Un programma in linguaggio macchina che implementa l algoritmo è il seguente (ogni istruzione è accompagnata da un breve commento): E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 5
6 Il linguaggio macchina leggi il primo valore (a) e ponilo nella cella leggi il secondo valore (b) (cella 17) leggi il terzo valore (c) (cella 18) leggi il quarto valore (d) (cella 19) carica A con il contenuto della cella carica B con il contenuto della cella somma i due valori (il risultato è in A) salva il risultato parziale nella cella carica A con il contenuto della cella carica B con il contenuto della cella somma i due valori (il risultato è in A) carica B con il contenuto della cella moltiplica i due valori (il risultato è in A) salva il risultato nella cella scrivi il contenuto della cella arresta l esecuzione 16 cella riservata ad a 17 cella riservata a b 18 cella riservata a c 19 cella riservata a d 20 cella riservata al risultato parziale celle libere E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 6
7 Il linguaggio macchina Esercizio 1: Si prendano in considerazione le tre celle di memoria x, y e z. Si effettui la seguente elaborazione: se x è maggiore di y, si memorizzi x in z, altrimenti si memorizzi y in z. Esercizio 2: Dati due valori di ingresso, n e m, si scriva in uscita n un numero di volte pari ad m. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 7
8 Modi di indirizzamento Si è finora supposto che l indirizzo dell operando sia esplicitamente presente nel relativo campo dell istruzione macchina. Si tratta del cosiddetto indirizzamento diretto dell operando: la macchina deve compiere un accesso alla memoria per recuperare l operando. Operando RIC N bit H bit H bit Inoltre l indirizzamento che abbiamo utilizzato è anche assoluto, e questo rende la rilocazione del programma impossibile o comunque estremamente onerosa. Un altro inconveniente è dato dal fatto che, se lo spazio degli indirizzi è grande, questo modo di indirizzamento richiede molti bit, e quindi costringe a campi indirizzi molto lunghi. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 8
9 Modi di indirizzamento Per ovviare a tali inconvenienti sono state studiate altre modalità di indirizzamento, alcune delle quali vengono adesso brevemente discusse. Nell indirizzamento indiretto (o differito), l indirizzo effettivo dell operando è contenuto nella locazione di memoria il cui indirizzo è presente nel campo operando RIC N bit Operando H bit H bit L indirizzo effettivo può essere quindi rappresentato in H bit, e non soltanto in N bit. Si deve però effettuare un accesso in più alla memoria per recuperare l operando. Inoltre l indirizzo è ancora espresso in modo assoluto. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 9
10 Modi di indirizzamento Nell indirizzamento tramite registro indice, l indirizzo effettivo dell operando è ottenuto sommando il contenuto di un registro della CPU, detto indice, al contenuto del campo operando: I + Operando RIC N bit H bit H bit L indirizzo effettivo può essere ancora rappresentato con un numero di bit maggiore di N. L accesso alla memoria. per recuperare l operando è uno solo. Inoltre l indirizzo è in sostanza espresso in modo relativo rispetto a I.. Nell indirizzamento immediato, infine, il campo operando contiene non l indirizzo, ma l operando stesso. Non è quindi richiesto nessun accesso alla memoria, però il valore dell operando è limitato a N bit. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 10
11 Modi di indirizzamento Il modo di indirizzamento può essere esplicitato nell istruzione in linguaggio macchina utilizzando un apposito campo. Nei nostri esempi abbiamo finora usato 4 bit per il codice operativo, e dei rimanenti 12 in realtà solo 10 sono stati usati per gli operandi. Gli altri 2 possono quindi essere utilizzati per specificare la modalità di indirizzamento, per esempio secondo la seguente codifica: 00 ind. diretto 01 ind. indiretto 10 ind. con indice 11 ind. immediato Questa soluzione evita di aumentare il numero di codici operativi necessari per tener conto delle differenti modalità di indirizzamento (si dovrebbero avere per esempio più istruzioni storea, loadb, etc.). In generale, si può assumere S = M + I + N, dove S è la lunghezza dell istruzione, M la lunghezza del codice operativo, I il numero di bit riservati alla modalità di indirizzamento, N la lunghezza del campo operandi. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 11
12 Linguaggio di assemblatore E evidente che programmare in linguaggio macchina presenta non pochi problemi: facilità di commettere errori, scarsa chiarezza dei programmi, difficoltà di modifica e correzione degli stessi, stretto legame con l architettura, etc. Per tali motivi sono stati sviluppati i linguaggi di programmazione evoluti, detti di alto livello in quanto si collocano su un certo livello di astrazione rispetto al linguaggio macchina. Si tratta in sostanza di linguaggi il cui alfabeto e la cui sintassi consentono di costruire frasi, cioè istruzioni, più vicine al linguaggio umano che a quello della macchina. Ovviamente, prima dell esecuzione un programma scritto in linguaggio evoluto (programma sorgente) deve essere tradotto in linguaggio macchina (programma oggetto). A ciò provvedono degli appositi programmi traduttori, i compilatori e gli interpreti. Ad un livello intermedio tra quello della macchina e quello dei linguaggi evoluti si colloca il linguaggio di assemblatore, che è caratterizzato dall uso di parole chiave per esprimere i codici operativi e dall uso di riferimenti simbolici alle celle di memoria, nonché di una maniera simbolica di esprimere le modalità di indirizzamento. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 12
13 Linguaggio di assemblatore Per il resto, le istruzioni in linguaggio di assemblatore corrispondono in modo biunivoco alle istruzioni in linguaggio macchina, per cui la capacità espressiva dei due linguaggi è esattamente la stessa. Per esempio, una tipica istruzione in linguaggio di assemblatore potrebbe essere: LOADA NUM che carica A con il contenuto della cella di indirizzo simbolico NUM. L indirizzamento è in questo caso diretto.analogamente si potrebbero avere: (indirizzamento indiretto) LOADA NUM(I) (indirizzamento con indice) LOADA #NUM (indirizzamento immediato) E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 13
Architettura di un calcolatore
Architettura di un calcolatore Corso di Informatica A Vito Perrone Indice La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L algoritmo Il programma Fasi di esecuzione di un istruzione 2 1
DettagliLa macchina di Von Neumann
Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica
DettagliElaborazione 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È una notazione con cui è possibile descrivere gli algoritmi.
Linguaggi di programmazione È una notazione con cui è possibile descrivere gli algoritmi. Programma È la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliLinguaggi 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
DettagliCodifica dell'informazione e dei programmi
Codifica dell'informazione e dei programmi Sommario Codifica binaria ed esadecimale dei numeri Operazioni aritmetiche e logiche Porte logiche e circuiti sommatori Formato delle istruzioni e principali
DettagliLaboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008
Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono
DettagliInformatica 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
DettagliDAGLI 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
DettagliArchitettura 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
DettagliRichiami 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
DettagliCalcolatori 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
DettagliRichiami 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
DettagliIstruzioni 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
DettagliFondamenti di Algoritmi
Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi
DettagliIl 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
DettagliProgrammazione 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; 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.
DettagliLinguaggi, 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
DettagliAccesso 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
DettagliLinguaggi, 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
DettagliIl Processore: l unità di controllo
Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di
DettagliArchitettura 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
DettagliElementi 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
DettagliELABORAZIONE 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
DettagliCome ragiona il computer. Problemi e algoritmi
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
DettagliComponenti di un processore
Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria
DettagliLinguaggi 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é
DettagliArchitettura di un calcolatore: Introduzione parte 2
Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 23/01/07 Nota Questi lucidi sono tratti
DettagliInformatica Generale Andrea Corradini I linguaggi di programmazione
Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi
DettagliPARTE 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
DettagliLinguaggio 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
DettagliC++ 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
DettagliFondamenti di Informatica
Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel
DettagliTeoria dell Informazione
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro
DettagliSommario 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
DettagliModi di indirizzamento
Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando
DettagliLinguaggio 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
DettagliFondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliFondamenti di Informatica
Fondamenti di Informatica Allievi Automatici A.A. 2014-15 Architettura del Calcolatore 1 La macchina di von Neumann bus di sistema canale di comunicazione CPU Mem. RAM Mem. Massa Perif. esecutore programmi
DettagliIl 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
DettagliProblema: 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
DettagliEsercizi per il corso di Architettura dei Calcolatori. Anno accademico 2008/09. Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione )
Esercizi per il corso di Architettura dei Calcolatori Anno accademico 2008/09 Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione ) 1) Caricare nel registro accumulatore AX il contenuto della
DettagliLinguaggio 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
Dettagli2. Architettura di un calcolatore
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 2. Ing. Michele Ruta 1di 31 Sommario Architettura di base: il modello della macchina di Von Neumann: Memoria CPU Bus Interfacce
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliMarta Capiluppi Dipartimento di Informatica Università di Verona
Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona I Dati Ogni variabile è caratterizzata da Nome Valori Tipo Numeri naturali o interi o reali (1, -2, 0.34) Caratteri
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
DettagliLinguaggio 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
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
DettagliARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliStudio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
DettagliFondamenti dell informatica
Fondamenti dell informatica Macchine a registri Rosario Culmone rosario.culmone@unicam.it 9/4/2008 UNICAM - p. 1/24 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.
DettagliIntroduzione 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
DettagliArchitettura 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
DettagliModi di indirizzamento del processore MC68000 (parte seconda)
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte seconda) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea
DettagliCorso di Laurea in Matematica
Corso di Laurea in Matematica Laboratorio di Informatica (a.a. 2002-03) Esercizi 1 Docente: Monica Nesi 1. Scrivere un programma in C che, dati in ingresso due numeri naturali, calcola il loro prodotto
DettagliArchitettura 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
DettagliSTRUTTURA 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
DettagliArchitettura dei calcolatori
Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura
DettagliIl 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
DettagliPARTE 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
DettagliPARTE 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
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliStruttura di un elaboratore
Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,
DettagliDall 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
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 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
DettagliL'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
DettagliMacchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD
Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento
DettagliInformatica 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
DettagliIl 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
DettagliCorso di Laurea in Ingegneria Elettronica
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Esercitazione 3 (Capitolo 4) Set di istruzioni Outline Set di istruzioni di macchina Metodi di indirizzamento
DettagliLezione 17: Indirizzamento della memoria LC-3
Lezione 17: Indirizzamento della memoria LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 22 Maggio 2013 Riassunto sull architettura LC-3 1. Organizzazione della memoria: La memoria è composta
DettagliConcetti di base dell ICT
Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:
DettagliLINGUAGGI 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
DettagliLINGUAGGI DI ALTO LIVELLO
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 C Fortran Modula-2 Cobol Algol Basic
DettagliEsercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento
Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma
DettagliLinguaggi di Programmazione
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
DettagliLinguaggi 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
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
DettagliLINGUAGGI 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
DettagliSottosistemi ed Architetture Memorie
Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
DettagliInformazione e sua rappresentazione: codifica
Corso di Calcolatori Elettronici I A.A. 2011-2012 Informazione e sua rappresentazione: codifica Lezione 2 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliLaboratorio 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
DettagliArchitettura di un elaboratore. Il modello di von Neumann
Architettura di un elaboratore Il modello di von Neumann 4(5) componenti fondamentali unita di elaborazione: CPU memoria centrale: RAM periferiche (memoria di massa) bus di sistema bus di sistema CPU RAM
DettagliSommario. Esempi di algoritmi. Il concetto di algoritmo. Sistemi Informativi in Rete Fondamenti di programmazione dei calcolatori
Sommario Sistemi Informativi in Rete Fondamenti di programmazione dei calcolatori Introduzione Il concetto di algoritmo I linguaggi di programmazione La programmazione dei calcolatori in Java III Facoltà
DettagliLinguaggio 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
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
DettagliLinguaggi 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
DettagliCalcolatori 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à
DettagliIstruzioni 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:
DettagliAlgoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 2 LA MACCHINA DI VON NEUMANN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliEsercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis. Corso di Laurea in Ingegneria Elettronica
Esercitazione di Prof. Gian Luca Corso di Laurea in Ingegneria Elettronica Esercitazione 3 (Capitolo 4) Set di istruzioni Outline Set di istruzioni di macchina Metodi di indirizzamento Implementazione
Dettagli