Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

La struttura fisica e logica di un elaboratore
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Procedure In assembler.
Gestione Input Output A. Ferrari.
Definizione e tipi di implementazione
IL MICROCONTROLLORE ST6
Elaboratore e Sistemi Operativo
Informatica Generale Susanna Pelagatti
Chiamate a Procedure. Per lesecuzione di una procedura, un programma deve eseguire i seguenti sei passi: mettere i parametri in un posto dove la procedura.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
Struttura dei sistemi operativi (panoramica)
Il Linguaggio Macchina
Com’è fatto un elaboratore?
1 Generazione codice Daniela Briola Lorena Bellino.
memoria gestita staticamente:
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Istruzioni per il Controllo del Processore
La macchina di von Neumann
CALCOLATORI ELETTRONICI II
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
I vettore interruzioni
Istruzioni per la Manipolazione dei Bit
Architettura del calcolatore
Introduzione al linguaggio assembly del microprocessore a parte
Unità centrale di processo

Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Procedure e Macro.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
L’esecuzione dei programmi
Linguaggi Diversi tipi di linguaggi:
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Esercizi.
1 System Call ancora Vediamo passo passo come funziona una SC.
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (1) Supporto hardware alle procedure Passaggio.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Dalla macchina di Von Neumann …
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Il modello di Von Neumann
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio eseguibile dal calcolatore: il Linguaggio Macchina

Fondamenti di Informatica2 Linguaggio Macchina Insieme di istruzioni eseguibili dalla CPU Dipende dalla CPU: –cablata al suo interno, ogni istruzione genera una sequenza di segnali di controllo Linguaggio di basso livello –si può accedere direttamente alle funzionalità di base del calcolatore

Fondamenti di Informatica3 Linguaggio Macchina Complesso da utilizzare: –ogni istruzione esegue un'operazione semplicissima –esistono librerie con procedure generali Gli altri linguaggi vengono "convertiti" in sequenze di istruzioni in linguaggio macchina

Fondamenti di Informatica4 Linguaggio Macchina Il Linguaggio Macchina è estremamente efficiente I programmi sono: –più veloci –più corti –ma più complessi

Fondamenti di Informatica5 Linguaggio Macchina La scrittura è complessa: –istruzioni formate da stringhe di 1 e 0: quindi è necessario un insieme di simboli (Linguaggio Assembly) –per referenziare le locazioni di memoria è necessario avere delle etichette –necessario commentare ogni istruzione

Fondamenti di Informatica6 Istruzioni Macchina Composte da: –etichette (per eliminare riferimenti ad indirizzi fisici, facilitano le modifiche) –codici operativi (non può mai mancare) –operandi (0, 1 o 2) START:MOV AX, BX CMPAX, 12h JZEQUAL INT21h RET EQUAL:MOVBL, 82h

Fondamenti di Informatica7 Commenti Servono a rendere il programma più comprensibile al programmatore e a chi lo analizzerà in futuro Vengono ignorati dalla macchina Devono essere utili ed esplicativi

Fondamenti di Informatica8 Commenti START: MOVAX, BX ; Carico AX con il valore di BX CMPAX, 24 ; Confronto AX con 24 JZ EQUAL ; Se AX=24 salto a EQUAL INT 21h ; Chiama l'INT 24h RET ; Ritorna alla proc. Chiamante EQUAL:... START: MOVAX, BX ; Carico AX con il numero di riga CMPAX, 24 ; Se sono al termine dello schermo JZ EQUAL ; allora non scrivo nulla INT 21h ; Scrivi la prossima riga di testo RET ; Ritorna EQUAL:...

Fondamenti di Informatica9 Tipi di istruzioni (Intel x86) Trasferimento dati Aritmetiche e logiche Manipolazione di bit Manipolazione di stringhe Trasferimento di controllo Manipolazione di interruzioni Controllo del processore

Fondamenti di Informatica10 Trasferimento dati Servono per trasferire dati tra: –registri –memoria –unità esterne MOV AX, BX - MOV AX, [indirizzo] PUSH AX - POP BX

Fondamenti di Informatica11 Aritmetiche Somme, sottrazioni, confronti, (moltiplicazioni, divisioni) Side effect sui flag ADD AX, BX ADC AX, BX MUL BX (macchine "a 0, 1, 2 indirizzi") CMP AX, BX

Fondamenti di Informatica12 Logiche And, Or, Xor, Not, Test AND AX, BX OR AX, BX TEST AX, b

Fondamenti di Informatica13 Manipolazione di bit Traslazioni e Rotazioni delle configurazioni binarie Traslazioni: SHL, SHR Traslazioni aritmetiche: SAL, SAR Rotazioni: ROL, ROR Rotazioni con carry: RCL, RCR

Fondamenti di Informatica14 Manipolazione di stringhe Spostamento, confronto, ricerca,… Utilizzano due registri puntatori e un registro contatore MOVS [ethchetta], [etichetta] CMPS [ethchetta], [etichetta] SCAS [ethchetta], [etichetta]

Fondamenti di Informatica15 Trasferimento del controllo Salti condizionati, incondizionati, chiamate e ritorni da procedure JZ [etichetta], JC [etichetta], … –diverse combinazioni JMP [etichetta] CALL [procedura] RET

Fondamenti di Informatica16 Manipolazione delle interruzioni Concetto di Interrupt Interrupt hardware e software La Interrupt Service Routine (ISR) è paragonabile ad una procedura ma: –è attivabile via hardware –non specifica l'indirizzo della procedura, che è quindi modificabile –durante l'esecuzione disabilita le interruzioni

Fondamenti di Informatica17 Controllo del processore Servono a modificare il comportamento della CPU Modificano i flag di controllo: CLC, STC, CMC (agiscono sul flag C), … Sincronizzazione: NOP, HLT, ESC, LOCK, …

Fondamenti di Informatica18 Accesso alla memoria Il metodo di indirizzamento definisce il meccanismo per ottenere i dati: –in registri –nell'istruzione stessa –in memoria –su una porta di I/O

Fondamenti di Informatica19 Modi di indirizzamento Immediato: –l'operando copare direttamente nell'istruzione come costante –è utilizzato solo per operandi 'sorgente' –MOV AX, 2

Fondamenti di Informatica20 Modi di indirizzamento Assoluto: –Nell'istruzione compare l'indirizzo effettivo (fisico) di memoria dove si trova l'operando –MOV AX, [3923:2314]

Fondamenti di Informatica21 Modi di indirizzamento Relativo: –l'indirizzo di memoria è specificato relativamente al contenuto del PC –vantaggio per programmi rilocabili –MOV AX, [PC+102]

Fondamenti di Informatica22 Modi di indirizzamento Diretto: –l'operando è contenuto in un registro –nell'istruzione è specificato l'identificativo del registro –MOV AX, BX

Fondamenti di Informatica23 Modi di indirizzamento Indiretto con registro: –l'operando è in una cella di memoria il cui indirizzo è contenuto in un registro –nell'istruzione è specificato l'identificativo del registro –MOV AX, [BX]

Fondamenti di Informatica24 Modi di indirizzamento Con autodecremento/incremento: –analogo all'indiretto con registro, ma il contenuto del registro viene decrementato di una quantità pari alla dimensione in bytes dell'operando –predecremento e postdecremento –preincremento e postincremento

Fondamenti di Informatica25 Modi di indirizzamento Indiretto con autoincremento: –l'operando è in memoria; il suo indirizzo è in un'altra posizione della memoria puntata dal contenuto di un registro. –nell'istruzione è contenuto l'identificativo del registro –dopo l'uso, il contenuto del registro è incrementato di una quantità pari alla dimensione in bytes di un indirizzo di memoria

Fondamenti di Informatica26 Modi di indirizzamento Con spiazzamento: –nell'istruzione sono specificati un dato in complemento a 2 e l'identificatore di un registro –il dato viene sommato al contenuto del registro per ottenere l'indirizzo dell'operando –MOV AX, [BX+9382]

Fondamenti di Informatica27 Modi di indirizzamento Indiretto con spiazzamento: –come il precedente, ma l'indirizzo ottenuto della somma punta ad una posizione di memoria dove è contenuto l'indirizzo dell'operando

Fondamenti di Informatica28 Modi di indirizzamento Con registri indice: –utilizza due registri: uno contiene un indirizzo base e l'altro un numero da moltiplicare per la dimensione dell'operando e da sommare alla base per ottenere la locazione dell'operando. –Utile per l'accesso a vettori

Fondamenti di Informatica29 Modi di indirizzamento Con lo stack pointer: –SP punta alla sommità dello stack; –le istruzioni PUSH e POP permettono di inserire e prelevare elementi dallo stack –Passaggio di parametri

Fondamenti di Informatica30 Modi di indirizzamento Implicito: –alcune istruzioni non prevedono di specificare esplicitamente alcuni dei loro operandi –DIV BL –Macchine "a 0 e 1 indirizzi"

Fondamenti di Informatica31 Descrizione istruzioni Il costruttore fornisce delle tabelle che descrivono l'esatto comportamento delle istruzioni –operazione effettuata –side effects –tempo di esecuzione –codifica

Fondamenti di Informatica32 Codifica delle istruzioni Problema: –rappresentare l'instruction set con opportune stringhe di bit –particolare riguardo anche alle prestazioni Soluzione: –codifiche con lunghezza variabile –codifica di Huffman

Fondamenti di Informatica33 Il BIOS Il BIOS (Basic Input Output System) è uno strato di software utilizzato per standardizzare l'accesso ai periferici Fornisce un insieme di procedure standard di interfaccia Permette la gestione a basso livello di: –video, tastiera, mouse, stampante,…

Fondamenti di Informatica34 Visione stratificata Hardware BIOS Sistema Operativo Applicazioni Assembly Livelli superiori