Programma sorgente, compilatore, file oggetto, file eseguibile. Traduzione effettuata dal compilatore. Dichiarazione di variabili (esempi)

Documenti analoghi
Codifica dei numeri interi positivi e negativi

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video

Introduzione alla programmazione strutturata

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Linguaggio C I puntatori

Codifica dei segnali audio

Tecniche di compressione senza perdita

Linguaggio C Debugging

Linguaggio C e sistema operativo

Linguaggio C Struct e union

Gestione della memoria di massa e file system

Controllo e correzione degli errori

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Input/output in C e in C++

IL CABLAGGIO STRUTTURATO DI CATEGORIA 6

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Compressione audio

Il cablaggio strutturato degli edifici: cosa c e` ` di nuovo?

Argomenti della lezione

Trasmissione bilanciata e amplificatore differenziale

La voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C

Metro VLAN Switch e standard 802.1ad

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Shielding. E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato. Pier Luca Montessoro.

Nota di Copyright. Interfaccia audio. Libreria portaudio. Callback function. Un piccolo problema. Fondamenti di Informatica

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Libreria in linguaggio C per elaborazione audio in real time

La programmazione in linguaggio C

Memoria cache, interrupt e DMA

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica

Progettazione delle dorsali in fibra ottica

1999 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica.

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Mobile IP Mobilità nelle reti IP Mario Baldi Politecnico di Torino

Cenni sull architettura protocollare TCP/IP

Cenni sull architettura protocollare TCP/IP

Linguaggio C Struttura dei programmi

Gestione dei processi

Progettazione di reti locali con switch di livello 3

Internet and Intranet Access

Linguaggio C Espressioni e operatori

Interconnessione di reti IP

Esercizi di Addressing. Fulvio Risso Guido Marchetto

Furto Identità Digitale

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche

RETI DI CALCOLATORI. Nota di Copyright. Passi progettuali necessari. Esercitazione 1. Progetto di un sistema di cablaggio strutturato

2001 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Progettazione di reti locali basate su switch - Switched LAN

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Linguaggio C Variabili e tipi di dato

Linguaggio macchina e linguaggio assembler

Linguaggio macchina e linguaggio assembly

Programmi per calcolo parallelo. Calcolo parallelo. Esempi di calcolo parallelo. Misure di efficienza. Fondamenti di Informatica

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Net or Not Neutrality

Priorità di traffico - IEEE 802.1p

Note sulla macchina a stack

Linguaggio C Compilazione, linking e preprocessor

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI II

Il collegamento delle reti aziendali: DHCP, DSL, PPPoE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

CONTENUTI della I parte

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine

FONDAMENTI DI MATEMATICA BINARIA

Scrittura dei programmi applicativi di rete

IL CABLAGGIO STRUTTURATO DI CATEGORIA 6

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Wireless LAN IEEE

Cenni sull ingegneria del software e sulla qualità dei programmi

Corso di Informatica

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Perché il linguaggio C?

Assembly (3): le procedure

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Linguaggi di alto livello, compilatori e interpreti

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Codifica dei numeri reali

Primi passi col linguaggio C

Istruzioni di trasferimento dati

Linguaggio C La libreria standard

Linguaggi di programmazione

1999 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Architetture dei Calcolatori

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

Preprocessore, linker e libreria standard

Link Aggregation - IEEE 802.3ad

La gestione della memoria dinamica Heap

netkit-static-routing Traduzione a cura di G. Ianni e G. Bennardo, Università della Calabria

Passaggio di Parametri per Valore o Indirizzo

3. Programmi e algoritmi

Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia

Transcript:

FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 ota di Copyright Questo insieme di trasparenze ( detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell autore prof. Pier Luca Montessoro, Università degli Studi di Udine. Le slide possono essere riprotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell autore. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, protti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione ). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali. 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2 Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente (uno o più file ASCII) compilatore file oggetto (binari) librerie (simili ai file oggetto) linker file eseguibile (binario) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3 Traduzione effettuata dal compilatore Dichiarazione di variabili spazi di memoria, di dimensioni opportune, riservati ai dati Espressioni traduzione in sequenze di istruzioni aritmetico-logiche Istruzioni di controllo traduzione con sequenze di istruzioni di controllo 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4 Dichiarazione di variabili (esempi) Espressioni (esempio) int n = 5; char v[5]; n: word 5 v: int n, x = 12, y = 64; n = x + y + 3; n: word 0 x: word C y: word 40 LDWI R0 3 LDWA R1 x ADD R1 R0 LDWA R1 y ADD R1 R0 STWA R0 n 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

SE LA CODIZIOE È VERA ; istruzioni ; istruzioni 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8 SE LA CODIZIOE È FALSA ; istruzioni 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9 else else: ; istruzioni ramo else ; istruzioni ramo else 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10 else SE LA CODIZIOE È VERA else: ; istruzioni ramo else ; istruzioni ramo else 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11 else SE LA CODIZIOE È FALSA else: ; istruzioni ramo else ; istruzioni ramo else 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2

loop: ; valutazione della 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13 SE LA CODIZIOE È VERA loop: ; valutazione della 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14 SE LA CODIZIOE È FALSA loop: ; valutazione della 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15 loop: ; valutazione della JMPZ loop 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16 SE LA CODIZIOE È VERA loop: ; valutazione della JMPZ loop 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17 SE LA CODIZIOE È FALSA loop: ; valutazione della JMPZ loop 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3

Funzioni: chiamata Per gestire le chiamate di funzioni viene utilizzato lo stack di sistema: push (variabili locali) copia degli argomenti della funzione in registri o aree di memoria convenzionali push (program counter corrente) program counter indirizzo della funzione Funzioni: ritorno copia del valore di ritorno in un registro o area di memoria convenzionale program counter pop () pop (variabili locali) L utilizzo dello stack anche per le variabili consente la ricorsione! 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20 Si scriva in linguaggio assembler una funzione recursiva che restituisca in R0 il valore del termine F n della successione di Fibonacci il cui numero d ordine, n, è passato alla funzione in R1 Si ricorda che: F 0 = 0 F 1 = 1 F n = F n-1 + F n-2 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21 Partiamo dal programma in linguaggio C ota: in questo esercizio, per semplicità, useremo soltanto variabili nei registri (cioè non in memoria centrale) e non faremo uso di funzioni di input/output 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22 Esempio: Fibonacci int main() int R1 = 10; int R0 = fibo (R1); int fibo (int R1) if (R1 == 0) return 0; if (R1 == 1) return 1; (main) ; int main() ; START: LDWI R10 0F000 SPWR R10 LDWI R1 0A ; int R1 = 10; CALL FIBO ; int R0 = fibo (R1); HLT ; return fibo (R1-1) + fibo (R1-2); 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4

Funzione FIBO - Parte I ; int fibo (int R1) ; FIBO: MV R1 R2 JMPZ COT_1 ; if (R1 == 0) XOR R0 R0 ; return 0; COT_1: LDWI R2 1 SUB R1 R2 JMPZ COT_2 ; if (R1 == 1) LDWI R0 1 ; return 1; 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25 Funzione FIBO - Parte II COT_2: DEC R1 PUSH R1 CALL FIBO ; /* chiama fibo (R1-1); */ POP R1 MV R0 R2 DEC R1 PUSH R1 PUSH R2 CALL FIBO ; /* chiama fibo (R1-2); */ POP R2 POP R1 ADD R2 R0 ; return fibo (R1-1) + fibo (R1-2); ; 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 26 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5