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

Dubbio float
(Questo messaggio è stato modificato l'ultima volta il: 19/11/2013, 22:34 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
certo che c'entra con il tuo problema.
Come hai giustamente trovato in internet nel caso di restituzione di float il valore viene messo (se già non ci sta in seguito a calcoli precedenti) nel registro ST0 (vedi anche lui in OllyDbg), è facile fare una verifica, invece di tornare float nel main (che in teoria dovrebbe tornare int) crea una nuova funzione, chessò, "funz1" che prende un float e torna un float e fagli fare un'operazione stupida, chessò raddoppia il parametro che gli passi.
Poi nel main chiama la funzione passandogli 10.0 e somma al risultato un 20.0 (tanto per fare un esempio) e quindi carica sto programma in ollydbg e metti un breakpoint sul return di funz1 e runnalo.
Vedrai che appena sei al breakpoint in ST0 ci sarà 20 (ovvero il 10 che gli passi moltiplicato per 2) se poi steppi per tornare al main e guardi cosa fa step by step vedrai che userà delle istruzioni tipo FADD per aggiungere a ST0 il 20 che hai nel main, a dimostrazione che ST0 contiene proprio il valore tornato dalla funzione funz1


digger
19/11/2013, 22:34
#4
Cerca


Messaggi in questa discussione
Dubbio float - da Cyanstack - 17/11/2013, 18:47
RE: Dubbio float - da Pocciox - 17/11/2013, 21:05
RE: Dubbio float - da Cyanstack - 18/11/2013, 13:22
RE: Dubbio float - da digger - 19/11/2013, 22:34
RE: Dubbio float - da Cyanstack - 20/11/2013, 12:58

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Piccolo Dubbio Cyanstack 3 1,600 29/10/2013, 0:25
Ultimo messaggio: digger
  [Guida] Conversione float<->int (UNION) digger 9 2,603 23/06/2012, 15:02
Ultimo messaggio: Marchrius
  [Guida] C/C++ Conversione INT->FLOAT (puntatori) digger 18 5,621 26/07/2011, 13:57
Ultimo messaggio: Skyline@69



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