Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : FPU et Vc++ [ Archives / c, c++ et asm ] (AlexMAN)

lundi 21 mars 2005 à 19:32:52 | FPU et Vc++

AlexMAN

Membre Club
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(nakedvoid __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)

lundi 21 mars 2005 à 23:17:50 | Re : FPU et Vc++

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
fld qword ptr[esp + 4] //empile n, ST(1) == n

NENNI, c'est fild avec un i car c'est un entier à convertir.

La FPU sert (ou servait, now y a SSE) à faire calculs en virgule flottante mais c'est plus long en chargement et conversion que de travailler sur les registres généraux avec des entiers.

ciao...
BruNews, MVP VC++

mardi 22 mars 2005 à 06:49:08 | Re : FPU et Vc++

AlexMAN

Membre Club
Et puis le FSTP => en FIST et c'est fini ;)

Merci beaucoup Brunews.

+2(p - n)

mardi 22 mars 2005 à 12:27:22 | Re : FPU et Vc++

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
N'oublie pas de laisser la stack fpu dans l'état où tu la trouves, faut dépiler ce que tu mets alors FISTP au besoin.

ciao...
BruNews, MVP VC++

mardi 22 mars 2005 à 15:38:58 | Re : FPU et Vc++

AlexMAN

Membre Club

Ok d'accord, je ne comprenais justement pas la difference entre les instructions avec 'P' et sans.

Merci beaucoup.

+2(p - n)


mardi 22 mars 2005 à 17:25:30 | Re : FPU et Vc++

BruNews

Administrateur CodeS-SourceS
Je te send un chm que j'ai fait en french sur la fpu.

ciao...
BruNews, MVP VC++

mardi 22 mars 2005 à 17:35:23 | Re : FPU et Vc++

AlexMAN

Membre Club
Tu me l'as deja envoyé, version du 19/04/2003.

+2(p - n)



Cette discussion est classé dans : registres, vc, st, eax, fpu


Répondre à ce message

Sujets en rapport avec ce message

FPU et puissance d'un nombre [ par AlexMAN ] Bonjour, Voila, j'ai 'codé' 2 fonctions permettant de calculer un nombre n a une puissance exp (la fonction est bourrin, cad pas de decoupages de la f assembleur en ligne avec gcc [ par nalk_deen_mook ] Bonjour quelqu'un pourrait il mexpliquer pourquoi ce bout de code ne  fonctionne pas#include int main(){  int a=10,b; _asm("movl %1 %%eax";      "movl Aidez moi à traduire une petite fonction assembleur en C (API Windows) [ par skirby ] Bonjour à tous, J'essaye désespérément de traduire une fonction ASM en C. Le but de cette fonction est de pouvoir utiliser une ressource compilé dans Assembleur et tableau + linux + bof [ par flocic ] Bonjour, J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet  à cause d'un depassement d ela taille du tableau. Mais ce Afficher valeur registre ? [ par Zootella ] Hello all, dans un programme, celui-çi test la valeur d'un registre : cmp  dword ptr [eax],4550h je voudrais faire des tests et afficher cette vale Récuperer valeur asm en C++ [ par S4T4N1QU3 ] Bonsoir, J'aimerais savoir comment récuperer EAX dans un cas comme celui ci asm("MOVL %EAX, 5"); Merci beaucoup à celui ou cell qui m'aidera <br probleme instruction assembleur [ par kadwin ] bonsoir!! j'ai un petit probleme de comprehension!! si eax = 1001101010 (en binaire) je fais ensuite l'instruction: shl eax, 7 quelle sera la vale Quels sont les parametres (nombre, taille...) [ par Renfield ] Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso Une mémoire "read" [ par msteve ] Bonsoir, Je suis débutant et j'ai recopié un programme test. Je parviens à l'assembler, puis à créer un .exe ; quend je lance l'exe j'obtiens la boîte declaration externe + news Kmdkit [ par patatalo ] salut, du nouveau pour les fondus de ring 0 sous NT: http://www.website.masmforum.com/tutorials/kmdtute/ ( kmd = kernel mode drivers ) avec masm32,


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.