Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4837 connectés 

  FORUM HardWare.fr
  Programmation

  [C] sortir une var des registres (ou la faire tomber à 32/64 bits..)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] sortir une var des registres (ou la faire tomber à 32/64 bits..)

n°69655
minusplus
Posté le 05-11-2001 à 11:12:05  profilanswer
 

bonjour.
 
Le problème : je fais des calculs sur une variable, le proco la met dans un de ses registres (logique) à 80 (ou je sais pu combien) bits et calcule dessus. Le problème c que je suis plus précis que la réprésentation mémoire qu'aura cette var quand elle y retournera. donc est-ce qu'en cours de calcul je peux dire au proco de la "flusher" en mémoire ? ou alors de descendre sa précision à la précision mémoire (32 ou 64 bits)

mood
Publicité
Posté le 05-11-2001 à 11:12:05  profilanswer
 

n°69668
Stef.D
hip..
Posté le 05-11-2001 à 13:46:55  profilanswer
 

minusplus a écrit a écrit :

bonjour.
 
Le problème : je fais des calculs sur une variable, le proco la met dans un de ses registres (logique) à 80 (ou je sais pu combien) bits et calcule dessus. Le problème c que je suis plus précis que la réprésentation mémoire qu'aura cette var quand elle y retournera. donc est-ce qu'en cours de calcul je peux dire au proco de la "flusher" en mémoire ? ou alors de descendre sa précision à la précision mémoire (32 ou 64 bits)  




 
C'est pas très clair ce que tu dis ...
80 bits ? c'est un flottant de très haute précision, tu peux pas les utiliser directement avec un compilateur C classique.
Sinon tu peux caster avec (float) ou (double).

n°69669
BENB
100% Lux.
Posté le 05-11-2001 à 13:53:07  profilanswer
 

Stef.D a écrit a écrit :

 
 
C'est pas très clair ce que tu dis ...
80 bits ? c'est un flottant de très haute précision, tu peux pas les utiliser directement avec un compilateur C classique.
Sinon tu peux caster avec (float) ou (double).  




80 bits c'est la tailles des registres d'un 387....
generalement les compilo C ont un type long double qui correspond a cela... sur PC bien sur...

n°69672
minusplus
Posté le 05-11-2001 à 14:04:35  profilanswer
 

BENB a écrit a écrit :

   
80 bits c'est la tailles des registres d'un 387....  
generalement les compilo C ont un type long double qui correspond a cela... sur PC bien sur...  




 
je sais mais moi je veux effectuer un calcul particulier en 32 ou 64 bits (moins précis). pour ça j'avais pensé faire transférer au compilo les vars dans la mémoire entre deux pas de calcul par exemple. est-ce qu'avec des pointeurs c'est possible ?

n°69781
bjone
Insert booze to continue
Posté le 05-11-2001 à 18:12:44  profilanswer
 

la précision interne du fpu est configurée par son registre de controle. il n'y a -pas- de manière standard en C/C++ pour switcher la précision interne...
 
tu doit attaquer la config du fpu en asm. (ou ptet des paramètres du compilo....)
 
il serait -sucidaire- au nivo perfo de stoquer de manière intermédaire le résultat dans un float/double (alloué par un pointeur, sinon le compilo utilisera un registre, on giclera carrément la ligne si c'est inutile).
 
qu'est tu veux gagner du temps (en baissant la précision interne) ou simuler un perte de qualité ?
 
de plus je ne sais po, et ne pense pas que les runtime des compilos mettent le fpu en 80 bits. (du moins 81 avec le J :??: sais plus)
 
donc attrape la doc de ton compilo, ptet un #pragma existe mais j'en doute.

n°70744
minusplus
Posté le 08-11-2001 à 16:23:46  profilanswer
 

je m'en fous que ça prenne du temps, c pour faire un calcul de précision d'un algo (enfin d'un calcul quoi) je le fais une fois et basta. le truc c que je vois pas comment forcer le compilo à remettre les vars en mémoire quand je veux. même sans optimisation, comme tu dis, le compilo va me virer la ligne...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] sortir une var des registres (ou la faire tomber à 32/64 bits..)

 

Sujets relatifs
VB] Fermeture d'une tache 16 bits[C++] Ecriture et lecture de bits dans un fichier
[base des registres] Ecrire à distance - Os Court[base des registres windows] Ecrire sur poste distant - Os Court
Aux pros de l'assembleur !!! (DOS 16 bits)[Base des registres] Versions d'évaluations
Pb de dégradé en 16 bitscomment lire une valeur de la base des registres en c++ ?
[C] Accéder à une valeur dans un champ de bits 
Plus de sujets relatifs à : [C] sortir une var des registres (ou la faire tomber à 32/64 bits..)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)