La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Procedure In assembler. Le fasi In assembler abbiamo due fasi: o Dichiarazione e Definizione Viene definito il nome (indirizzo) della procedura Vengono.

Presentazioni simili


Presentazione sul tema: "Procedure In assembler. Le fasi In assembler abbiamo due fasi: o Dichiarazione e Definizione Viene definito il nome (indirizzo) della procedura Vengono."— Transcript della presentazione:

1 Procedure In assembler

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

3 Dichiarazione e Definizione Sintassi PROC RET ENDP Esempio VaiACapo PROC MOV AH, 2 MOV DL, 13 INT 21h MOV DL, 10 INT 21h RET VaiACapo ENDP

4 Commento alla dichiarazione Il nome della procedura rappresenta lindirizzo di partenza del codice Listruzione RET termina lesecuzione della procedura e ritorna il controllo al programma chiamante La procedura va inserita dopo la fine del programma o allinizio, 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 o Suggerimento: usare un prefisso per le label che ricordi il nome della procedura

5 Chiamata della procedura Sintassi CALL 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 allinterno di unaltra procedura

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

7 Procedure e stack Listruzione CALL inserisce nello stack lindirizzo della prossima istruzione da eseguire nel programma chiamante (IP) Listruzione RET recupera dallo stack lindirizzo dellistruzione da eseguire nel programma chiamante

8 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 allinizio della procedura per poi recuperarlo alla fine di questa. Per inserire un valore sullo stack si utilizza listruzione PUSH Per recuperare e togliere un valore dallo stack si utilizza listruzione POP Attenzione alla logica LIFO !

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


Scaricare ppt "Procedure In assembler. Le fasi In assembler abbiamo due fasi: o Dichiarazione e Definizione Viene definito il nome (indirizzo) della procedura Vengono."

Presentazioni simili


Annunci Google