Procedure In assembler.

Slides:



Advertisements
Presentazioni simili
Puntatori in C e C++.
Advertisements

in un programma Assembler
Tipi di dato astratti Lista, Pila, Coda, Albero.
Estendere i linguaggi: i tipi di dato astratti
Procedure e funzioni A. Ferrari.
Strutture dati lineari
Procedure e funzioni In linguaggio C.
Generazione di Codice Intermedio
1 Semantica Operazionale di un frammento di Java: lo stato.
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.
UD 3: “Le Liste” UD 4: “Pile e Code” UD 5: “Alberi e grafi”
Laboratorio di informatica: ASSEMBLER
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Funzioni.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Il Linguaggio Macchina
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
memoria gestita staticamente:
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Istruzioni per il Controllo del Processore
Programmazione Avanzata
Le funzioni a tempo di esecuzione
FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return * sin(0.75); } float f1(int x) { return.
CALCOLATORI ELETTRONICI II
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Introduzione al linguaggio assembly del microprocessore a parte
I vettore interruzioni
Architettura del calcolatore
Sottoprogramma Un blocco di istruzioni, come ad esempio lanello di ritardo, può costituire un sottoprogramma (subroutine) a sé stante, richiamabile dal.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
INTERFACCIAMENTO ASSEMBLY - C++
Introduzione al linguaggio assembly del microprocessore a parte
Sistemi di elaborazione e trasmissione delle informazioni
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.

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 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Pile e Code.
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
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:
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Allievi Elettrici - AA Le funzioni ricorsive in C
Sottoprogrammi e funzioni
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Architettura di un calcolatore e linguaggio macchina.
1 Analisi ammortizzata Si considera il tempo richiesto per eseguire, nel caso pessimo, una intera sequenza di operazioni. Se le operazioni costose sono.
L’esecuzione dei programmi
SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
1 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
FUNZIONI: IL MODELLO A RUN-TIME 1) creazione di una nuova attivazione (istanza) del servitore 2) allocazione di memoria per i parametri e per le variabili.
Esercitazione 4 Chiamate di procedure Claudia Raibulet
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
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.
Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Strutture dati di tipo astratto 19 Strutture dati,
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (2) Convenzioni di uso dei registri Utilizzo.
Transcript della presentazione:

Procedure In assembler

Le fasi In assembler abbiamo due fasi: Dichiarazione e Definizione Viene definito il nome (indirizzo) della procedura Vengono presentate le istruzioni che fanno parte di questa Esecuzione Viene “chiamata” la procedura Possono esistere più chiamate della stessa procedura

Dichiarazione e Definizione Sintassi <nome_procedura> PROC <istruzioni> RET <nome_procedura> ENDP Esempio VaiACapo PROC MOV AH, 2 MOV DL, 13 INT 21h MOV DL, 10 VaiACapo ENDP

Commento alla dichiarazione Il nome della procedura rappresenta l’indirizzo di partenza del codice L’istruzione RET termina l’esecuzione della procedura e ritorna il controllo al programma chiamante La procedura va inserita dopo la fine del programma o all’inizio, ma in tal caso deve essere “saltata” Il nome della procedura deve essere significativo E’ opportuno inserire un commento sul comportamento della procedura Eventuali LABEL interne alla procedura non devono interferire con label del resto del programma Suggerimento: usare un prefisso per le label che “ricordi” il nome della procedura

Chiamata della procedura Sintassi CALL <nome_procedura> Esempio CALL VaiACapo CALL trasferisci il controllo alla procedura In un programma possono essere presenti più istruzioni di CALL alla stessa procedura e anche CALL a procedure diverse Una procedura può essere chiamata all’interno di un’altra procedura

Lo stack Lo stack è una zona di memoria utilizzata per memorizzare valori temporanei. Lo stack segue la logica LIFO (Last In First Out) cioè l’ultimo elemento inserito è il primo a essere tolto dallo stack. Per esempio una pila di monete può dare l’idea del funzionamento dello stack: la prima moneta che viene prelevata è quella posta in “testa” alla pila cioè l’ultima che era stata inserita

Procedure e stack L’istruzione CALL inserisce nello stack l’indirizzo della prossima istruzione da eseguire nel programma chiamante (IP) L’istruzione RET “recupera” dallo stack l’indirizzo dell’istruzione da eseguire nel programma chiamante

Salvataggio temporaneo dei registri Una procedura può avere come effetto collaterale quello di modificare i valori di alcuni registri. Per evitare problemi è possibile inserire sullo stack i valori di questi registri all’inizio della procedura per poi recuperarlo alla fine di questa. Per inserire un valore sullo stack si utilizza l’istruzione PUSH Per recuperare e togliere un valore dallo stack si utilizza l’istruzione POP Attenzione alla logica LIFO !

Un esempio VaiACapo PROC push ax push dx mov ah,2 mov dl, 13 int 21h pop dx pop ax ret ENDP