Bonjour à tous.
Dans le cadre de mes cours, nous avons toujours Visual Express 2008 pour coder en assembleur x86. (surtout pour l'utilité du débogueur, il est vrai). Chaque travail que nous devons effectuer dois être fait ainsi et compiler sous Visual Express 2008.
Dans le cadre d'un projet, je dois réaliser une calculatrice gérant les nombres à virgules flottantes.
Pour appréhender la bête, et comprendre le fonctionnement, je commence par un code de type
Le hic, c'est que quand je compile, je reçoit une erreur : " Type d'opérande incorrect" à la ligne du FLD.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 float a; _asm{ MOV EAX,0x41560000 FLD EAX FST [a] }
Je change un peux le code.. Et me rends compte que les répertoires et les mnémoniques spécifique au coprocesseur mathématique ne sont pas pris en charge.
Pourtant, lorsque je fais un code du genre
Le programme compile correctement et quand je regarde le code machine généré, les mnémoniques du coprocesseur sont bel et bien utilisé... !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 float a; float b; a = 10,750; b = 10,750; a = a + b;
Je suppose dès lors que le problème pourrait venir du fait que le coprocesseur mathématique ne soit pas pris en charge par Visual Express quand on utilise l'instruction _asm{}.
Seul hic, je ne trouve aucune information à ce sujet..
Je me tourne vers vous du coup... Auriez-vous une petite idée de la manière dont je pourrais remédier à ceci ?
Bien à vous,
archMqx.
Partager