IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Produire une petite table de conversion euro/franc allant de 0,5 à 10 euros par pas de 0.5


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut Produire une petite table de conversion euro/franc allant de 0,5 à 10 euros par pas de 0.5
    bonsoir

    est ce que quelqu'un peut m'aider je n'arrive pas à incrementer ma variable x de 0.5 à chaque passage dans la boucle
    x est le montant en euros que je dois multiplier par la variable francs (40.3399)
    x vaut 0.5 je mets le debogeur
    j'ai essayé de voir les registres mais j'arrive pas à les mettre en valeurs decimales (xmm0 ...
    j'ai regardé avec le debogueur et le inc x ça donne x=0.5000006 au lieu de x = 1.000
    et quand ça repasse dans la boucle le inc x ça donne x = 0.5000012 au lieu de x = 1.5000
    je n'arrive pas à incrementer de 0.5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    #include <stdio.h>
     
     
        int nbl=11;
    	double francs=40.3399;
    	int i =1;
    	float x=0.5;//problème avec increase si float x = 0.5 comment ecrire les virgules et incrementer x et pas x= 0.51
    	double resultat;
    	double y =0.5000;
     
    	char acFormatAffichage[]="\n%f euros est egal a : %f francs ";
    void main()
    {
     
    	_asm
    	{
     
     
    		   debutbcl:
     
     
    			    cmp i,11
    			    jnb finbcl
     
    				addss xmm0,x
     
     
     
     
    				cvtss2sd xmm1,xmm0
    				mulsd xmm1,francs
    				movsd resultat,xmm1
     
     
    			        push dword ptr resultat +4
    				push dword ptr resultat
    				push dword ptr x
    			       push offset acFormatAffichage 
                                   call dword ptr printf
    				add esp,16
     
    				inc i
    				movsd xmm5,y
    				addsd x,xmm5
     
    				jmp debutbcl
     
     
     
    finbcl:
    				mov i,12
     
     
    	}scanf("%d",&i);
    }

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut mon affichage ne marche pas mais le code marche je vois au debogueur que ça met les bons resultats
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #include <stdio.h>
    		int nbl=11;
    		double francs=40.3399;
    		int i =1;
    		double x=0.5;
    		double resultat;
    		double y =0.5;
    		char acFormatAffichage[]="\n euros est egal a : %f francs ";
    void main()
    {
    	_asm
    	{
     	       movsd xmm3,x 
         debutbcl:
     
     	       cmp i,11
     	       jnb finbcl
     	       movsd xmm5,xmm3
    		   mulsd xmm5, francs
     
    		   movsd resultat,xmm5
     
     	       push dword ptr resultat +4
               push dword ptr resultat
     
     
     	   /*    push offset acFormatAffichage//ça ne marche pas ici 
               call dword ptr printf
               add esp,12*/
               addsd xmm3,x
               inc i
               jmp debutbcl
     
         finbcl:
             mov i,12
       }     scanf("%d",&i);
     
    }

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 44
    Points : 0
    Points
    0
    Par défaut variables intermédiaire
    j'a utilisé des variables intermédiaires pour stocker et ça marche et l'affichage aussi j'ai changé le code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. créer une petite table
    Par dchant_ dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/10/2008, 12h05
  2. Réponses: 4
    Dernier message: 04/03/2007, 21h39
  3. plusieurs petite tables ou une seule grande table
    Par aaronw dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 19/05/2005, 09h22
  4. UPDATE d'une grande table ou INSERT d'une petite ?
    Par bibile dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/04/2005, 10h09
  5. plein de petites tables ou une grosse?
    Par loveflower dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 09/11/2004, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo