• Non ci sono risultati.

,OPRGHOORGLPHPRULDHL VRWWRSURJUDPPLGHO SURFHVVRUHIJVM $SU

N/A
N/A
Protected

Academic year: 2021

Condividi ",OPRGHOORGLPHPRULDHL VRWWRSURJUDPPLGHO SURFHVVRUHIJVM $SU"

Copied!
10
0
0

Testo completo

(1)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,O/LYHOOR0LFURDUFKLWHWWXUD LLL

$FXUDGL

/XFD%UHYHJOLHUL*LXVHSSH3R]]L

DEIPoliMI0LODQR

OXFDEUHYHJOLHULJLXVHSSHSR]]L#SROLPLLW

 YHUVLRQHGHOO¶DSULOH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,OPRGHOORGLPHPRULDHL

VRWWRSURJUDPPLGHO

SURFHVVRUHIJVM

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6WUXWWXUD]LRQHGHOODPHPRULD

‡ /DPHPRULDFHQWUDOHqVWUXWWXUDWDRYYHUR

qVXGGLYLVDLQDUHH QRQQHFHVVDULDPHQWH

FRQWLJXH DYHQWLXVLGLYHUVL

‡ 8Q¶DUHDSXzFRQWHQHUHDVHFRQGDGHOO¶XVR

DVVHJQDWROHFRGLFHHVHJXLELOHFRVWDQWL

FLRqGDWLILVVL GDWL FLRqYDULDELOL 

ULIHULPHQWLDGDOWUHDUHH FLRqSXQWDWRUL R

DOWULWLSLGLLQIRUPD]LRQLDQFRUD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/DPHPRULDFHQWUDOHGLIJVM

‡ ,OSURFHVVRUHIJVM GLVSRQHGLXQR

VSD]LRGLPHPRULDFHQWUDOHGL4 *E\WH

FLRq4 G × 8 ELW SDUROHGD8 ELW

‡ Ê DQFKHSRVVLELOHYHGHUHODPHPRULD

FRPHXQYHWWRUHGL1 G × 32 ELWRYYHUR

VWUXWWXUDWDFRQSDUROHGDELW

(2)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

0HPRULDHLVWUX]LRQL

‡ /HLVWUX]LRQLPDFFKLQDGHOSURFHVVRUH

IJVM QRQYHGRQRGLUHWWDPHQWHJOL

LQGLUL]]LGHOODPHPRULDFHQWUDOH

‡ (VVHRSHUDQRLPSOLFLWDPHQWHVXOOD

PHPRULDXWLOL]]DQGRGHJOLDSSRVLWL

UHJLVWULFRPHSXQWDWRUL PCSPLV

CPP HUHJLVWULDOWULDQFRUD

‡ 3HUHVHPSLROHRSHUD]LRQLORJLFR

PDWHPDWLFKHYHQJRQRFDOFRODWHWUDPLWH

ODSLODGHOOHHVSUHVVLRQL UHJLVWURSP

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

0RGHOORGLPHPRULDGLIJVM

‡ /DPHPRULDFHQWUDOHGHOSURFHVVRUH

IJVM qVXGGLYLVDLQ4 DUHHSULQFLSDOL

QRQQHFHVVDULDPHQWHWXWWHFRQWLJXH 

± DUHDGHOOHFRVWDQWL &RQVWDQW3RRO$UHD

± SLODGHOOHDUHHGLDWWLYD]LRQH )UDPH6WDFN

$UHD

± SLODSHULOFDOFRORGHOOHHVSUHVVLRQL

2SHUDQG6WDFN$UHD

± DUHDGHOFRGLFHHVHJXLELOH ([HFXWDEOH

&RGH$UHD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

0RGHOORGLPHPRULDGLIJVM

AREA DELLE COSTANTI

AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 1 AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 2 AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 3 PILA PER IL CALCOLO DELLE ESPRESSIONI

(PROC. 3)

CODICE ESEGUIBILE

DEL PROGRAMMA

PRINCIPALE E DELLE PROCEDURE

E FUNZIONI CPP

PC LV

Stack Pointer: SP puntatore alla cima della pila

Limit Value: puntatore alla base dell’area di attivazione della procedura correntemente

in esecuzione

Program Counter: puntatore alla prossima istruzione da mettere in esecuzione, quando

l’istruzione correntemente in esecuzione sarà terminata

Constant Pool Pointer:

puntatore alla base dell'area delle costanti

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGHOOHFRVWDQWL

‡ $UHDGHOOHFRVWDQWLFRQWLHQHFRVWDQWL

QXPHULFKHHGLDOWURWLSRVWULQJKHILVVH

GLFDUDWWHULHSXQWDWRULDGDOWUHDUHHGL

PHPRULD

‡ /¶DUHDYLHQHLQL]LDOL]]DWDTXDQGRLO

SURJUDPPDYLHQHFDULFDWRLQPHPRULD

‡ ,OSURJUDPPDQRQSXzPRGLILFDUHLO

FRQWHQXWRGHOO¶DUHD

‡ ,OSURJUDPPDDFFHGHDOO¶DUHDWUDPLWHLO

UHJLVWURSXQWDWRUHCPP

(3)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGLDWWLYD]LRQH

‡ $UHD GLDWWLYD]LRQHGHOSURJUDPPD

SULQFLSDOHGHOODSURFHGXUDHGHOOD

IXQ]LRQHFRQWLHQHDOFXQLSXQWDWRULGL

VHUYL]LR YHGHUHOH]LRQLVXFFHVVLYH XVDWL

QHOODJHVWLRQHGHOPHFFDQLVPRGL

FKLDPDWDULWRUQRGLVRWWRSURJUDPPD

FRQWLHQHLSDUDPHWULSDVVDWLDOODSURFHGXUD

RDOODIXQ]LRQH DOO¶DWWRGHOODVXD

FKLDPDWDHFRQWLHQHORVSD]LRULVHUYDWRSHU

OHYDULDELOLORFDOLGHOODSURFHGXUD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGLDWWLYD]LRQH

‡ /¶DUHDGLDWWLYD]LRQHYLHQHDOORFDWDVXOOD

FLPDGHOODSLODTXDQGRODSURFHGXUD

DVVRFLDWDHQWUDLQHVHFX]LRQH

‡ /DSURFHGXUDFRUUHQWHPHQWHLQHVHFX]LRQH

XVDOHYDULDELOLORFDOLHLSDUDPHWUL

FRQWHQXWLQHOODSURSULDDUHDGLDWWLYD]LRQH

‡ 4XDQGRODSURFHGXUDFRUUHQWHPHQWHLQ

HVHFX]LRQHWHUPLQDO¶DUHDGLDWWLYD]LRQHLQ

FLPDDOODSLODYLHQHHOLPLQDWD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGLDWWLYD]LRQH

‡ 6RSUDO¶DUHDGLDWWLYD]LRQHGHOSURJUDPPD

SULQFLSDOHSURFHGXUDRIXQ]LRQH

FRUUHQWHPHQWHLQHVHFX]LRQH VLQRWLFKH

VRSUDTXHVW¶DUHDGLDWWLYD]LRQHF¶qVHPSUH

VSD]LROLEHURSHUIDUHFUHVFHUH

XOWHULRUPHQWHODSLOD YLHQHFRVWUXLWDOD

SLODSHULOFDOFRORGHOOHHVSUHVVLRQLQHL

PRPHQWLLQFXLLOSURJUDPPDGHYH

FDOFRODUHXQ¶HVSUHVVLRQHORJLFR

PDWHPDWLFD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGLDWWLYD]LRQH

‡ ,OUHJLV WURLVFRQWHQXWRQHOSURFHVVRUH

IJVMYLHQHXVDWRSHUSXQWDUHDOODEDVH

GHOO¶DUHDGLDWWLYD]LRQHGHOODSURFHGXUD

FRUUHQWHPHQWHLQHVHFX]LRQH

‡ ,OUHJLV WURSPFRQWHQXWRQHOSURFHVVRUH

IJVMSXQWDDOODFLPDGHOODSLODRYYHUR

± DOODFLPDGHOO¶DUHDGLDWWLYD]LRQHFRUUHQWH

± RSSXUHDOODFLPDGHOODSLODGHOOHHVSUHVVLRQL

QHLPRPHQWLLQFXLTXHVWDQRQqYXRWDFLRq

TXDQGRqLQFRUVRLOFDOFRORGLXQ¶HVSUHVVLRQH

(4)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3LODGHOOHHVSUHVVLRQL

‡ /DSLODSHULOFDOFRORGHOOHHVSUHVVLRQL

qXQD]RQDGLVSD]LROLEHURGLGLPHQVLRQL

SUHILVVDWHULVHUYDWDSHUIDUHFUHVFHUHOD

SLODSHULOFDOFRORGHOOHHVSUHVVLRQLORJLFR

PDWHPDWLFKH

‡ 4XDQGRLOFRPSLODWRUHJHQHUDOHVHTXHQ]H

GLLVWUX]LRQLFKHFDOFRODQROHHVSUHVVLRQL

XVDQGRODSLODVLDVVLFXUDFKHODSLODQRQ

SRVVDFUHVFHUHLQPRGRHFFHVVLYRULVSHWWR

DOORVSD]LRGLPHPRULDODVFLDWROLEHUR

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGHOFRGLFHHVHJXLELOH

‡ &RGLFHHVHJXLELOHGHOSURJUDPPD

SULQFLSDOHHGHOOHSURFHGXUHH

IXQ]LRQLFRQWLHQHLOFRGLFHHVHJXLELOH

GHOSURJUDPPDSULQFLSDOHHGHOOH

HYHQWXDOLSURFHGXUHHRIXQ]LRQLIDFHQWL

SDUWHGHOSURJUDPPDFRPSOHVVLYRGD

HVHJXLUHDOPHQRLOSURJUDPPD

SULQFLSDOHqVHPSUHSUHVHQWHPHQWUH

SURFHGXUHHRIXQ]LRQLVRQRIDFROWDWLYH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGHOFRGLFHHVHJXLELOH

‡ /¶DUHDGHOFRGLFHHVHJXLELOHYLHQH

FDULFDWDLQPHPRULDFHQWUDOHTXDQGR

O¶LQWHURSURJUDPPDHQWUDLQHVHFX]LRQH

‡ 4XDQGRLOSURJUDPPDSULQFLSDOHHVHJXH

O¶LVWUX]LRQHGLWHUPLQD]LRQHLQOLQHDGL

SULQFLSLRLOFRQWHQXWRGHOO¶DUHDGLFRGLFH

HVHJXLELOHGLYHQWDLQXWLOHHSRWUHEEH

HVVHUHFDQFHOODWR

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHDGHOFRGLFHHVHJXLELOH

‡ ,OUHJLV WURPCFRQWHQXWRQHOSURFHVVRUH

IJVMYLHQHXVDWRSHUSXQWDUH

DOO¶LQWHUQRGHOO¶DUHDGLFRGLFHHVHJXLELOH

DOODSURVVLPDLVWUX]LRQHPDFFKLQDGD

PHWWHUHLQHVHFX]LRQHTXDQGR

O¶LVWUX]LRQHPDFFKLQDFRUUHQWHPHQWHLQ

HVHFX]LRQHVDUjWHUPLQDWD H

VXSSRQHQGRFKHO¶LVWUX]LRQHPDFFKLQD

FRUUHQWHQRQVLDXQ¶LVWUX]LRQHGLVDOWR

(5)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3UHFLVD]LRQLVXLUHJLVWUL

‡ ,UHJLV WULCPPLV HSPFRQWHQXWLQHO

SURFHVVRUHIJVMVRQRSXQWDWRULD

SDUROHGD32 ELWQRQDE\WHFLRq

± OHJJHUHDOODORFD]LRQHSXQWDWDSHVGDSP VLJQLILFDOHJJHUHODSDURODGD32 ELW QRQLO

E\WH VLWXDWRLQFLPDDOODSLOD

± OHJJHUHDOODORFD]LRQHSXQWDWDSHVGDLV + 1 VLJQLILFDOHJJHUHODSDURODGD32 ELW

QRQLOE\WH VLWXDWDVXELWRGRSRODSDUROD

GD32 ELWSXQWDWDGLUHWWDPHQWHGDLV

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3UHFLVD]LRQLVXLUHJLVWUL

‡ ,OUHJLV WURPCFRQWHQXWRQHOSURFHVVRUH

IJVMqXQSXQWDWRUHDE\WHQRQDSDUROH

GD32 ELWFLRq

± OHJJHUHDOODORFD]LRQHSXQWDWDGDPCVLJQLILFD

OHJJHUHXQE\WH QRQXQDSDURODGD32 ELW  IDFHQWHSDUWHGHOO¶LVWUX]LRQHGDPHWWHUHLQ

HVHFX]LRQH

± OHJJHUHDOODORFD]LRQHSXQWDWDGDPC + 1 VLJQLILFDOHJJHUHLOE\WH QRQODSDURODGD32 ELW VXFFHVVLYRDOO¶XOWLPRE\WHOHWWRIDFHQWH

SDUWHGHOO¶LVWUX]LRQHGDPHWWHUHLQHVHFX]LRQH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3DUROHGLPHPRULDHUHJLVWUL

AREA DELLE COSTANTI

AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 1 AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 2 AREA DI ATTIVAZIONE

DELLA PROCEDURA

NUMERO 3 PILA PER IL CALCOLO

DELLE ESPRESSIONI

(PROC. 3)

CODICE ESEGUIBILE

DEL PROGRAMMA

PRINCIPALE E DELLE PROCEDURE

E FUNZIONI CPP

PC LV

SP

puntatore a parola da 32 bit

32 bit 32 bit 8 bit

puntatore a parola da 32 bit

puntatore a parola da 32 bit

puntatore a byte (parola da 8 bit)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLRGLDOORFD]LRQHPHPRULD

‡ 6LFRQVLGHUDXQDSURJUDPPD-DYD PD

YDUUHEEHDQFKHSHUXQSURJUDPPDC  FRVWLWXLWRGD

± SURJUDPPDSULQFLSDOH PDLQ

± IXQ]LRQHAFKLDPDWDGDOSURJSULQFLSDOH

± IXQ]LRQHBFKLDPDWDGDOODIXQ]LRQHA

‡ ,OSURJSULQFLSDOHqLQUHDOWjDQFK¶HVVR

XQDIXQ]LRQHFKHYLHQHFKLDPDWDSHU

SULPDGDSDUWHGHOVLVWHPDRSHUDWLYR

(6)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLRGLDOORFD]LRQHPHPRULD

‡ /DIXQ]LRQHA HVHJXHDOFXQH

HODERUD]LRQLSRLFKLDPDODIXQ]LRQHB

‡ /DIXQ]LRQHB HVHJXHLOFDOFRORGL

XQ¶HVSUHVVLRQHSRLWHUPLQD

‡ ,OSURJSULQFLSDOHHOHIXQ]LRQLA HB IDQQRXVRGLDOFXQHFRVWDQWL

‡ /DILJXUDLOOXVWUDORVWDWRGHOOHYDULHDUHH

GLPHPRULDGHOODPDFFKLQDIJVM

PHQWUHODIXQ]LRQHB qLQHVHFX]LRQHH

VWDDSSXQWRFDOFRODQGRO¶HVSUHVVLRQH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLRGLDOORFD]LRQHPHPRULD

puntatore

"Ciao!"

17 10

AREA DI ATTIVAZIONE

DEL PROGRAMMA

PRINCIPALE AREA DI ATTIVAZIONE

DELLA PROCEDURA

A AREA DI ATTIVAZIONE

DELLA PROCEDURA

B PILA DELLE ESPRESSIONI:

È IN CORSO IL CALCOLO DI

(1 + 2) × 3

Proc. B

CPP

PC LV

SP

Proc. A

Prog. principale spazio libero

{

area di attivazione della procedura correntemente in esecuzione (B)

}

codice eseguibile della procedura correntemente in esecuzione (B)

} la procedura

correntemente in esecuzione (B) sta

calcolando un'espressione

{

costanti usate da programma principale, procedure e

funzioni

pila delle aree di attivazione e pila delle espressioni area delle

costanti

area del codice eseguibile

prossima istruzione macchina da mettere

in esecuzione

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

2VVHUYD]LRQL

‡ ,OUHJLV WURLV /LPLW9DOXH SXQWDDOOD

EDVHGHOO¶DUHDGLDWWLYD]LRQHGHOOD

IXQ]LRQHBFRUUHQWHPHQWHLQHVHFX]LRQH

‡ ,OUHJLV WURSP 6WDFN3RLQWHU SXQWDDOOD

FLPDGHOODSLODGHOOHHVSUHVVLRQLFKH

FRQWLHQHGHLYDORULSHUFKpqLQFRUVRGD

SDUWHGLBLOFDOFRORGLXQ¶HVSUHVVLRQH

‡ ,OUHJLV WURPC 3URJUDP&RXQWHU SXQWD

QHOO¶DUHDGLFRGLFHHVHJXLELOHGL%DOOH

LVWUX]LRQLFKHFDOFRODQRO¶HVSUHVVLRQH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6RWWRSURJUDPPL

‡ ,OOLQJXDJJLRPDFFKLQDIJVM DPPHWWH

FRPHVRWWRSURJUDPPLVRORIXQ]LRQL

QRQSURFHGXUH VLPLOPHQWHDO

OLQJXDJJLRC

‡ 8QDIXQ]LRQHIJVM UHVWLWXLVFHVHPSUH

XQQXPHURLQWHURFRPHYDORUHGLXVFLWD

‡ 6HODIXQ]LRQHYDXVDWDFRPH

SURFHGXUDLOYDORUHUHVWLWXLWRSXz

HVVHUHLJQRUDWR EHQFKpVLDSUHVHQWH

(7)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3DVVDJJLRDVRWWRSURJUDPPD

‡ ,OSURFHVVRUHIJVM GLVSRQHGLGXH

LVWUX]LRQLPDFFKLQDSHUODJHVWLRQHGHO

PHFFDQLVPRGLSDVVDJJLRD

VRWWRSURJUDPPD IXQ]LRQH 

– INVOKEVIRTUAL spiazzamentoLO

VRWWR SURJUDPPDFKLDPDQWHDWWLYDLO

VRWWRSURJUDPPDVSHFLILFDWRWUDPLWH

O¶DUJRPHQWRspiazzamento

– IRETURNLOVRWWRSURJUDPPDFKLDPDWR

ULWRUQDDO VRWWR SURJUDPPDFKLDPDQWH

UHVWLWXHQGRJOLXQQXPHURLQWHUR

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6SHFLILFDGHOFKLDPDWR

‡ 3HUVSHFLILFDUHODFROORFD]LRQHHOH

FDUDWWHULVWLFKHGHOVRWWRSURJUDPPDGD

FKLDPDUHO¶LVWUX]LRQHINVOKEVIRTUAL DGRWWDXQIRUPDWRGLVSHFLILFDDSSRVLWR

‡ 7DOHIRUPDWRVLEDVDVXXQ³GHVFULWWRUH´

GHOVRWWRSURJUDPPDGDFKLDPDUH

FRQWHQHQWHLQIRUPD]LRQLQHFHVVDULHSHU

XQDVXDFRUUHWWDPHVVDLQHVHFX]LRQH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLR

INVOKEVIRTUAL spz_B

"Ciao!"

17 CPP 10

puntatore a B

area delle costanti

area del codice eseguibile

spiazzamento (spz_B)

# di parametri di B dimensioni var. loc. di B opc. 1a istr. B

}}

}

2 byte

2 byte

1 byte

}

IRETURN

n byte

1 byte

}

{

"descrittore" del sottoprogramma (funzione) B (4 byte)

punta a 1° byte del descrittore di B

sottoprogramma (funzione) B

{

corpo del sottoprogramma (funzione) B (n + 2 byte)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

)XQ]LRQDPHQWRGHOODFKLDPDWD

‡ ,OVRWWRSURJUDPPDFKLDPDQWHVFULYHVXOOD

FLPDGHOODSLODLOULIHULPHQWRDOO¶RJJHWWR

OBJREF SOHRQDVWLFR HLSDUDPHWULGD

SDVVDUHDOVRWWRSURJUDPPDFKLDPDWR

‡ ,OVRWWRSURJUDPPDFKLDPDQWHHVHJXH

O¶LVWUX]LRQH

– INVOKEVIRTUAL spiazzamento

GRYHspiazzamento LQGLFD YHGHUHOD

VWUXWWXUDGHVFULWWRUH LOVRWWRSURJUDPPD

FKLDPDWRFXLSDVVDUHO¶HVHFX]LRQH

(8)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

)XQ]LRQDPHQWRGHOULHQWUR

‡ ,OVRWWRSURJUDPPDFKLDPDWRPHWWHVXOOD

FLPDGHOODSLODLOYDORUHGDUHVWLWXLUHDO

VRWWRSURJUDPPDFKLDPDQWH XQLQWHUR

‡ ,OVRWWRSURJUDPPDFKLDPDWRHVHJXH

O¶LVWUX]LRQH

– IRETURN

FKHULSRUWDO¶HVHFX]LRQHDOVRWWRSURJUDPPD

FKLDPDQWHDOO¶LVWUX]LRQHVXFFHVVLYDD

INVOKEVIRTUAL

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/¶LVWUX]LRQHINVOKEVIRTUAL

‡ /¶LVWUX]LRQHINVOKEVIRTUAL

SUHGLVSRQHO¶DPELHQWHSHULOSDVVDJJLR

GHOO¶HVHFX]LRQHDOVRWWRSURJUDPPD

± LPSLODO¶DUHDGLDWWLYD]LRQHGHOFKLDPDWR

± LQVHULVFHQHOO¶DUHDGLDWWLYD]LRQH

LQIRUPD]LRQLQHFHVVDULHLQVHJXLWRSHU

JHVWLUHLOULHQWURGDVRWWRSURJUDPPD

± DJJLRUQDLUHJLVWULLVSP HPCGHO

SURFHVVRUHIJVM

± ODQFLDO¶HVHFX]LRQHGHOVRWWRSURJUDPPD

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&KLDPDWDDVRWWRSURJUDPPD I

Parametro 3

Parametro 1

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2 Parametro 1 Parametro 1

Parametro 2

LV SP

LV SP pila prima

dell’impilamento dei parametri

pila dopo l’impilamento del parametri area di

attivazione del sottoprog.

chiamante

base dell’area di attivazione corrente prima del passaggio dei parametri

pacco dei parametri da passare

Rif. Oggetto cima della pila prima del

passaggio dei parametri

cima della pila dopo il passaggio dei parametri

la funzione A impila i parametri da passare alla funzione B

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&KLDPDWDDVRWWRSURJUDPPD II

Parametro 3

Parametro 1 Rif. Oggetto Parametro 2

LV Funzione A Ind. Rientro B

Parametro 3

Parametro 1

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2 Punt. Rientro

Parametro 1 Parametro 1

Parametro 2 Area delle variabili locali della funzione

chiamata (B)

LV SP

LV SP

pila dopo l’impilamento dei parametri, ma prima di INVOKEVIRTUAL

pila dopo l’esecuzione dell’istruzione INVOKEVIRTUAL pacco dei

parametri da passare

area di attivazione

del sottoprog.

chiamante

base dell’area di attivazione corrente prima di INVOKEVIRTUAL

base dell’area di attivazione corrente dopo INVOKEVIRTUAL

area di attivazione

del sottoprog.

chiamato

la funzione A chiama la funzione B

(9)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/¶LVWUX]LRQHIRETURN

‡ /¶LVWUX]LRQHIRETURN ULFRVWUXLVFH

O¶DPELHQWHGLHVHFX]LRQHGHO

VRWWRSURJUDPPDFKLDPDQWH

± VSLODO¶DUHDGLDWWLYD]LRQHGHOFKLDPDWR

± ODVFLDVXOODFLPDGHOODSLODGHOFKLDPDQWHLO

YDORUHUHVWLWXLWRGDOFKLDPDWR

± ULSULVWLQDLUHJLVWULLVSP HPC GHO

SURFHVVRUHIJVM DLYDORULSUHFHGHQWLOD

FKLDPDWD

± ULSRUWDO¶HVHFX]LRQHDOFKLDPDQWH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

5LHQWURGDVRWWRSURJUDPPD

LV Funzione A Ind. Rientro B

Parametro 3

Parametro 1

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2 Punt. Rientro

Parametro 1 Parametro 2 Area delle variabili locali della funzione chiamata (B)

LV SP

pila prima dell’esecuzione dell’istruzione

IRETURN area di

attivazione del sottoprog.

chiamato

Valore restituito

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Punt. Rientro Parametro 2 Valore restituito

Parametro 1 LV SP pila dopo l’esecuzione

dell’istruzione IRETURN

base dell’area di attivazione corrente dopo IRETURN base dell’area

di attivazione corrente prima di IRETURN

cima della pila delle espressioni prima di IRETURN

cima della pila delle espressioni dopo IRETURN

area di attivazione

del sottoprog.

chiamante

la funzione B termina e la funzione A riprende l’esecuzione;

A riceve il valore

restituito da B

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RPHIXQ]LRQDIRETURN

‡ /¶LVWUX]LRQHIRETURN LQYHUWHOH

RSHUD]LRQLGHOO¶LVWUX]LRQH

INVOKEVIRTUALRYYHUR

± ULSULVWLQDLYDORULRULJLQDOLGHLUHJLVWULLV H

PCXVDQGRLO³SXQWDWRUHBULHQWUR´OR

³LQGLUL]]RBGLBULHQWUR´HLO³LV )XQ]LRQH´

PHPRUL]]DWLQHOO¶DUHDGLDWWLYD]LRQHGHO

VRWWRSURJUDPPDFKLDPDWR

± DJJLRUQDLOYDORUHGHOUHJLVWURSP HODVFLDLO

YDORUHUHVWLWXLWRVXOODFLPDGHOO¶DUHDGL

DWWLYD]LRQHGHOVRWWRSURJUDPPDFKLDPDQWH

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLR

‡ 6LVXSSRQJDGLDYHUHXQSURJUDPPD

IJVM PRGXODUL]]DWRFRPHVHJXH

± SURJUDPPDSULQFLSDOH

± IXQ]LRQHA UHVWLWXLVFHXQQXPHURLQWHUR

± IXQ]LRQHB UHVWLWXLVFHXQQXPHURLQWHUR

‡ ,OSURJUDPPDSULQFLSDOHFKLDPDOD

IXQ]LRQHAFKHDVXDYROWDFKLDPDOD

IXQ]LRQHB

‡ 9LHQHPRVWUDWRLOSURFHVVRGLSDVVDJJLR

FKLDPDWDULHQWUR GD$DB

(10)

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHHGLDWWLYD]LRQH

‡ /DSLODGHOSURFHVVRUHIJVM FRQWLHQH

GXQTXHO¶DUHDGLDWWLYD]LRQHGHO

SURJUDPPDSULQFLSDOHHVRSUDTXHVWD

TXHOODGHOODIXQ]LRQHA

‡ ,OSURFHVVRGLFKLDPDWDLQVWDOODO¶DUHDGL

DWWLYD]LRQHGHOODIXQ]LRQHB VRSUDO¶DUHD

GLA HFRVuGLVDWWLYDO¶DUHDGLA

‡ ,OSURFHVVRGLULHQWURGLVLQVWDOODO¶DUHDGL

DWWLYD]LRQHGHOODIXQ]LRQHBULDWWLYDQGR

O¶DUHDGLA

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

Parametro 3 Parametro 2 Parametro 1 OBJREF LV Prog. Princ.

Ind. Rientro A

Parametro 1 Punt. Rientro Parametro 2 Area delle variabili locali della funzione chiamante (A) area del

programma e delle procedure e funzioni

funzione B

IRETURN funzione A

IRETURN programma

principale altro …

IVKVRT spz_B PC

LV SP

salva parametri e oggetto in pila

subito dopo che A ha impilato il puntatore all'oggetto e i 3 parametri da passare a B, ma subito prima

che A esegua IVKVRT

IVKVRT spz_A Ind.

Rientro B

Ind.

Rientro A

descrittore di B 4 byte Ind.

Iniz. di B

Ind.

Iniz. Desc.

LV Funzione A

Area delle variabili locali della funzione chiamata (B) Parametro 3 Parametro 2 Parametro 1 Punt. Rientro LV Prog. Princ.

Ind. Rientro A

Parametro 1 Punt. Rientro Parametro 2 Area delle variabili locali della funzione chiamante (A) Ind. Rientro B area del

programma e delle procedure e funzioni

funzione B

IRETURN funzione A

IRETURN programma

principale altro …

IVKVRT spz_B

PC

LV SP

salva parametri e oggetto in pila

IVKVRT spz_A Ind.

Rientro B

Ind.

Rientro A

descrittore di B Ind.

Iniz. di B

Ind.

Iniz. Desc.

subito dopo che A ha eseguito IVKVRT e che B

è entrata in esecuzione

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Parametro 1 Punt. Rientro Parametro 2 area del

programma e delle procedure e funzioni

funzione B

IRETURN

IVKVRT spz_B funzione A

IRETURN programma

principale altro …

PC

LV SP

salva parametri e oggetto in pila

subito prima che A impili il puntatore all'oggetto e i 3 parametri da passare a B

IVKVRT spz_A Ind.

Rientro B

Ind.

Rientro A

descrittore di B 4 byte Ind.

Iniz. di B

Ind.

Iniz. Desc.

6LPXOD]LRQHGHOODFKLDPDWDAnimazione

la funzione A chiama la funzione B

Fine

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

Valore restituito LV Funzione A

Area delle variabili locali della funzione chiamata (B) Parametro 3 Parametro 2 Parametro 1 Punt. Rientro LV Prog. Princ.

Ind. Rientro A

Parametro 1 Punt. Rientro Parametro 2 Area delle variabili locali della funzione chiamante (A) Ind. Rientro B area del

programma e delle procedure e funzioni

funzione B

IRETURN funzione A

IRETURN programma

principale altro …

IVKVRT spz_B

PC

LV SP

salva parametri e oggetto in pila

IVKVRT spz_A Ind.

Rientro B

Ind.

Rientro A

descrittore di B Ind.

Iniz. di B

Ind.

Iniz. Desc.

subito prima che B esegua

IRETURN

LV Prog. Princ.

Ind. Rientro A Area delle variabili locali della funzione chiamante (A)

Parametro 1 Punt. Rientro Parametro 2 area del

programma e delle procedure e funzioni

funzione B

IRETURN

IVKVRT spz_B funzione A

IRETURN programma

principale altro …

PC

LV SP

salva parametri e oggetto in pila

subito dopo che B ha terminato di eseguire IRETURN, e che l'esecuzione è tornata ad A, all'istruzione successiva a IVKVRT

IVKVRT spz_A

Valore restituito

Ind.

Rientro B

Ind.

Rientro A

descrittore di B 4 byte Ind.

Iniz. di B

Ind.

Iniz. Desc.

6LPXOD]LRQHGHOULWRUQR Animazione

B termina e A riprende l’esecuzione

Fine

$SU ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

2VVHUYD]LRQH

‡ ,OSURFHVVRGLFKLDPDWDGLXQDIXQ]LRQH

YLHQHYLVWRGDOODIXQ]LRQHFKLDPDQWH

FRPHXQFDOFRORGLHVSUHVVLRQH

± DOODFKLDPDWDODSLODSHULOFDOFRORGHOOH

HVSUHVVLRQLGHOFKLDPDQWHqYXRWD

± DOULHQWURODSLODSHULOFDOFRORGHOOH

HVSUHVVLRQLGHOFKLDPDQWHFRQWLHQHVRORLO

YDORUHUHVWLWXLWRGDOFKLDPDWR FRPHVH

IRVVHVWDWDFDOFRODWDXQ¶HVSUHVVLRQH

‡ 6LSRVVRQRSHUWDQWRFDOFRODUHIDFLOPHQWH

HVSUHVVLRQLFRQWHQHQWLIXQ]LRQL

Riferimenti

Documenti correlati

In particolare, il Decreto detta le modalità organizzative per perseguire l’obiettivo del graduale e progressivo superamento dell’utilizzo del lavoro agile emergenziale come una

 Nelle more della definizione degli istituti del rapporto di lavoro connessi al lavoro agile da parte della contrattazione collettiva e della definizione delle modalità e

Tullio Jappelli è professore ordinario di Economia politica presso l'Università di Napoli Federico II, direttore del Dipartimento di Scienze Economiche e

Le organizzazioni che si preparano alla riapertura devono essere ben consapevoli della situazione, devono conoscere le norme pertinenti e le misure di sicurezza delle aree in

Sono stati esaminati i principali studi europei sulle competenze trasversali dei volontari internazionali per capire meglio i diversi modelli europei usati per misurare le soft skills

* Qualora i casi positivi diventassero due o più, gli alunni andranno in quarantena con DaD per dieci giorni ed il rientro avverrà con esito negativo di un

Prima e dopo aver toccato materiale di uso promiscuo, il personale scolastico dovrà provvedere alla sanificazione delle mani. -Accedendo in ogni aula: i docenti sanificheranno

La dotazione totale di posti letto, in diminuzione a partire dal 2010, risulta pari a 3,75 posti letto per 1000 residenti al 1° gennaio 2013, allineata al valore di riferimento