Bonjour tout le monde,
j'aurais voulu savoir comment traduire en langage C le petit bout d'assembleur suivant.
MOVSX EDI, var1
MOV EAX, EDI
IMUL EDI
CDQ
XOR EAX,EDX
SUB EAX,EDXEn fait, la partie qui me pose problème est en rouge.
Au début, j'utilisait une variable de type
double mais je ne sais pas comment faire pour récupérer les 32 bits de poid fort d'une variable de type
double dans une variable de type
long puisqu'on ne peut pas faire d'opération de décalage sur un type
double.
De plus, la commande CDQ étend le bit de signe aux octets de poid fort. Donc EDX peut valoir 00000000 ou FFFFFFFF en fonction du bit de signe de EAX.
J'avoue ne pas savoir comment faire. J'espère avoir été clair.
Merci d'avance pour votre aide et A+