Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] Al C++ Parte 2.
(Questo messaggio è stato modificato l'ultima volta il: 22/07/2011, 15:04 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ahah sky, bella l'ultima similitudine circa la donna della motorizzazione Smile

volendo aggiungere qualcosina alla questione dell'int di ritorno, cosi tanto per arricchire le conoscenze di chi è interessato, questo è il programma con l'int di ritorno

int main()
{
return (100);
}


00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. B8 64000000 MOV EAX,64
00401008 |. 5D POP EBP
00401009 \. C3 RETN


questo è il programma senza int di ritorno:

main()
{
}

00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. 33C0 XOR EAX,EAX
00401005 |. 5D POP EBP
00401006 \. C3 RETN


ora, chiariamo come ragiona l'eseguibile, il valore di ritorno del programma eseguito viene messo nel registro EAX poco prima di uscire dal codice, quindi tralasciando le altre istruzioni che non ci interessano ora, la differenza tra i due programmi è questa:

ritorna int di valore 100 (64 esadecimale) :
MOV EAX,64

non ritorna nessun int:
XOR EAX,EAX

notare che XOR EAX,EAX è come dire MOV EAX,0

capito? praticamente non c'è nessuna differenza tra un programma che torna un valore ed uno che non lo torna,
alla fine l'eseguibile TORNA SEMPRE UN VALORE, solo che nel secondo caso, di default il valore tornato è 0

spero sia chiara la spiega
ciao
Smile




digger
22/07/2011, 14:58
#17
Cerca


Messaggi in questa discussione
Al C++ Parte 2. - da Luxor - 21/07/2011, 18:15
[Nessun oggetto] - da digger - 21/07/2011, 18:44
[Nessun oggetto] - da Luxor - 21/07/2011, 20:37
[Nessun oggetto] - da MAUROW - 21/07/2011, 19:04
[Nessun oggetto] - da Patoffo - 21/07/2011, 20:50
[Nessun oggetto] - da MAUROW - 21/07/2011, 21:30
[Nessun oggetto] - da digger - 21/07/2011, 22:14
[Nessun oggetto] - da Patoffo - 21/07/2011, 22:28
[Nessun oggetto] - da digger - 21/07/2011, 22:32
[Nessun oggetto] - da Patoffo - 21/07/2011, 22:34
[Nessun oggetto] - da digger - 21/07/2011, 22:35
[Nessun oggetto] - da Skyline@69 - 22/07/2011, 10:36
[Nessun oggetto] - da digger - 22/07/2011, 11:16
[Nessun oggetto] - da Skyline@69 - 22/07/2011, 12:23
[Nessun oggetto] - da Luxor - 22/07/2011, 12:44
[Nessun oggetto] - da Skyline@69 - 22/07/2011, 13:07
[Nessun oggetto] - da digger - 22/07/2011, 14:58
[Nessun oggetto] - da Skyline@69 - 22/07/2011, 20:14
[Nessun oggetto] - da digger - 22/07/2011, 23:09
[Nessun oggetto] - da Skyline@69 - 23/07/2011, 8:27

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [Guida] Al C++ Parte 8. Luxor 12 2,610 28/07/2011, 14:42
Ultimo messaggio: digger
  [Guida] Al C++ Parte 7. Luxor 5 1,639 27/07/2011, 14:51
Ultimo messaggio: digger
  [Guida] Al C++ Parte 1. Luxor 7 2,433 25/07/2011, 23:38
Ultimo messaggio: digger



Utenti che stanno guardando questa discussione: 1 Ospite(i)