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:
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);
} |
mon affichage ne marche pas mais le code marche je vois au debogueur que ça met les bons resultats
Code:
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);
} |