Tutorial
|
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 017 di 198] |
|
![]() |
|
![]() | Questa istruzione organizza la chiamata e l'esecuzione di una procedura, cioè un sottoprogramma terminato con RET. |
![]() | La procedura chiamata può essere di tipo NEAR, cioè posta dentro il segmento di codice in cui è chiamata, o FAR, in caso contrario; questa caratteristica impone all'istruzione un diverso modo di gestire le operazioni. |
![]() | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
![]() |
CALL Destinazione | IP << Destinazione | |||||||||||||||
Esempio di Applicazione |
Cicli di Clock | Mem Acces |
N° Bytes |
Flag influenzate | ||||||||||||
Mnemonico | Operandi | 86 | 268 | 386 | 486 | O | D | I | T | S | Z | A | P | C | ||
CALL |
LabelNear |
19 | 7 | 7+m | 3 | 1 | 3 | |||||||||
CALL |
Far Ptr Label |
28 | 13 | 17+m | 18 | 2 | 5 | |||||||||
CALL |
AX |
16 | 7 | 7 | 5 | 1 | 2 | |||||||||
CALL |
[Depo02] |
21+EA | 11 | 10+m | 5 | 2 | 2,4 |
![]() | La tabella evidenzia che
l'istruzione non altera alcuna flag (almeno se non si effettua un cambio di
processo). Inoltre mostra le possibili tipologie
dell'unico operando:
| ||||||
![]() | La procedura può essere già presente nell'apposita zona del programma, o assunta da una libreria (dichiarata, in questo caso, esterna, EXTRN). |
![]() | Se la chiamata di procedura è
NEAR l'istruzione provvede ai seguenti compiti:
|
![]() | Se la chiamata di procedura è FAR
l'istruzione provvede ai seguenti compiti:
|
![]() | Le 2 sequenze precedenti sono tratte dalle preziose schede dedicate allo Stack: se vuoi scoprire in dettaglio cosa fa il processore in questi casi consulta quelle dedicate alla gestione di CALL NEAR e alla gestione della CALL FAR. |
![]() | Dopo l'esecuzione di CALL il processore si viene a trovare in tutt'altro ambiente, lontano dal programma principale da cui è partito, nel medesimo segmento se NEAR o addirittura in un altro se FAR; si mette ad eseguire diligentemente tutte le istruzioni della procedura, in attesa della RET, che gli consentirà di tornare nel suo percorso nativo, naturalmente a partire dall'indirizzo successivo a quello contenente l'istruzione CALL |
![]() | La figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi e del tipo di indirizzamento coinvolti (leggi le istruzioni): |
|
|
![]() |
Scheda n° 07 |
![]() |
Istruzioni Cpu 80x86 |
![]() |
![]() |
![]() |
||
Istruzione 017 - CALL |
|
|
|
Home
![]() |
|
|||||||
|
Motore Ricerca |
|