Sottoprogramma Un blocco di istruzioni, come ad esempio lanello di ritardo, può costituire un sottoprogramma (subroutine) a sé stante, richiamabile dal.

Slides:



Advertisements
Presentazioni simili
INGRESSI E USCITE.
Advertisements

MODULO 4 – Il Foglio elettronico
Dalla scrittura all’esecuzione
Procedure In assembler.
LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
IL MICROCONTROLLORE ST6
Elaboratore e Sistemi Operativo
Gestione del processore
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.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Laboratorio di informatica: ASSEMBLER
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Funzioni.
Allocazione dinamica della memoria
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Struttura dei sistemi operativi (panoramica)
Il Linguaggio Macchina
memoria gestita staticamente:
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
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 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
La macchina di von Neumann
Le memorie del calcolatore
CALCOLATORI ELETTRONICI II
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
Architettura degli elaboratori
I vettore interruzioni
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Durata istruzioni e programmi
Un esempio: Calcolo della potenza n-esima di un numero reale
EXCEL E FTP.
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
Unità centrale di processo

Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1. 2 Variabili statiche e dinamiche Un programma è un processo in esecuzione a cui il sistema operativo assegna una certa zona di memoria. Tale zona può.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Allievi Elettrici - AA Le funzioni ricorsive in C
Programmazione Assembly
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
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
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Esercizi.
Convenzioni chiamate a procedure Riassunto Pratico.
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.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (2) Convenzioni di uso dei registri Utilizzo.
Transcript della presentazione:

Sottoprogramma Un blocco di istruzioni, come ad esempio lanello di ritardo, può costituire un sottoprogramma (subroutine) a sé stante, richiamabile dal programma principale, al quale la CPU ritorna dopo l esecuzione del sottoprogramma; è opportuno sfruttare questa possibilità soprattutto quando il blocco di istruzioni è utile in più punti del programma principale; in questo modo si evita di riscrivere due o più volte il blocco di istruzioni. Un sottoprogramma deve essere scritto (inserendolo prima della pseudoistruzione END, altrimenti viene ignorato dal programma di assemblaggio) seguendo le stesse regole di un normale programma, avendo l accortezza di definire il suo indirizzo di partenza (tramite la pseudoistruzione ORG nn) in una cella diversa da quella del programma principale e di altri eventuali sottoprogrammi, così da non sovrapporre le varie zone di memoria occupate da programmi, sottoprogrammi e dati oggetto di elaborazione. Per chiamare un sottoprogramma dal programma principale occorre quindi inserire l istruzione CALL nn, il cui operando nn costituisce l indirizzo di inizio del sottoprogramma che si vuole chiamare (tale indirizzo è sostituibile da un etichetta che deve essere anche indicata nell apposita colonna all altezza della prima istruzione del sottoprogramma e seguita dai due punti :, come per le normali etichette). Una chiamata a sottoprogramma equivale a un salto, cioè a una forzatura del contenuto del program counter, con la differenza che per ogni chiamata è previsto un ritorno all istruzione successiva a quella di chiamata (CALL nn) presente nel programma principale (viceversa per i salti non è definito un ritorno all istruzione successiva al salto stesso). Da ciò ne consegue che il sistema, nel momento in cui lascia il programma principale per eseguire un sottoprogramma, deve conservare memoria dell indirizzo di ritorno al programma principale; ciò avviene automaticamente durante l istruzione di chiamata, nella quale, prima della forzatura del program counter all indirizzo del sottoprogramma, viene copiato l indirizzo successivo a quello di chiamata (già presente nel program counter durante l esecuzione dell istruzione corrente e diviso in due byte, parte alta e parte bassa dell indirizzo) in una zona di memoria denominata area di stack, anch essa distinta dalle zone di programmi, sottoprogrammi e dati. Per consentire il ritorno al programma principale, ogni sottoprogramma deve terminare con l istruzione RET, che copia nel program counter l indirizzo precedentemente salvato nell area di stack, ripristinando la situazione di partenza.

Ove prevista la presenza di almeno un sottoprogramma (o comunque l uso dell area di stack), per evitare sovrapposizioni accidentali tra le zone di memoria coinvolte nel programma, è buona norma di programmazione, iniziare il programma principale definendo l indirizzo di inizio dell area di stack, cioè l inizializzazione del puntatore di area di stack (registro stack pointer, cioè SP), tramite l istruzione LD SP,nn, dove nn deve essere un indirizzo diverso e lontano dalle altre zone coinvolte, tenendo presente che le celle interessate dal salvataggio dei dati, sono quelle che precedono tale indirizzo; in caso di mancata inizializzazione del registro SP, quest ultimo potrebbe casualmente contenere un indirizzo conflittuale con tali zone, rimasto da precedenti usi del sistema o dal suo avvio. Ogni sottoprogramma può a sua volta chiamare un altro sottoprogramma (sottoprogrammi nidificati), terminato il quale, tornerà al sottoprogramma chiamante, che potrà così ripartire e terminare, per poi ritornare al programma principale. Sia l istruzione CALL che l istruzione RET possono, separatamente, essere condizionate (tramite le istruzioni CALL cc,nn e RET cc ), così come avviene per i salti. Esempio: ORG0000H;indirizzo inizio programma principale LDSP,7000H;definisci area di stack CALL RIT;chiama il sottoprogramma anello di ritardo* HALT ORG0100H;indirizzo sottoprogramma anello di ritardo RIT:LDB,38H;prima istruzione anello di ritardo ;ultima istruzione anello di ritardo RET;torna al programma principale END;fine programma e sottoprogrammi *nell istruzione, al posto del nome dell etichetta, può comparire l indirizzo 0100H, relativo all indirizzo di inizio del sottoprogramma, all altezza del quale non è più necessaria l etichetta seguita dai due punti. p r o g r a m m a p r i n c i p a l e sottoprogramma