Bonsoir,
J'aurais aimé savoir s'il etait possible de visionner le contenu des registres FPU sous VC++, parce que c'est assez embetant de ne pas voir ce qui s'y trouve..
Et par la meme occasion, j'aurais aimé savoir pourquoi cette fonction deconne :
//Calcul puissance d'un nombre avec FPU (pour conserver les registres eax etc...)
//Resultat renvoyé dans ST(0).
__declspec
(naked) void __stdcall Puiss(__int64 n, int exp)
{
__asm {
mov eax, [esp + 12] //eax == exp
fld qword ptr[esp + 4] //empile n, ST(1) == n
dec eax
jle Fin
fld ST //empile n, ST(0) == n, Contiendra le resultat
Deb:
fmul ST, ST(1)
dec eax
test eax, eax
jne Deb
Fin:
ret 12
}
}ST contient toujours 0 a la sortie. J'ai simplement changé la taille de n (32 => 64) et voila ce qui se passe, si quelqu'un a une explication, merci ;)
Et au fait, Brunews, la derniere fois tu as dit que c'etait normal que la fonction FPU soit plus lente que la fonction avec les registres generaux, la FPU ne sert elle pourtant pas a faire des calculs plus rapides ?
Merci d'avance.
+2(p - n)