begin process at 2012 05 25 04:18:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

c, c++ et asm

 > 

FPU et Vc++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

FPU et Vc++

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ée 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...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales