% sur 64 bits

Résolu
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 8 sept. 2004 à 20:34
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 18 sept. 2004 à 18:34
Je fait un mul, donc j'obtiens un nombre en 2 parties dans eax et edx, soit n sur 64 bits.
J'aimerais savoir comment je peux faire pour obtenir n % x et n / x
Merci

4 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
18 sept. 2004 à 18:34
Je ne sais pas si vous aviez bien compris mon poblème...
En fait l'instruction div suffit puisqu'elle attend un dividende sur 64 bits (edx:eax), et je pensais que c'était 32
Il suffit donc de faire

mov ecx, n
div n
3
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
8 sept. 2004 à 22:16
Salut,
Comme un pourcentage normal
eax et edx doivent rester inchanger
mov ecx,100
div ecx
mov ecx,N% ;extrait N% de eax:edx initial
mul ecx
;;;;;le tour est joué,mais le reste est perdu

mais on peut aussi utiliser le FPU,masm32 fournit le proc suivant
sur 32 bits
PourCent proc source:DWORD, percent:DWORD
; invoke PourCent,Xresolution,80 ;80 % de Xresolution
LOCAL var1:DWORD

mov var1, 100 ; to divide by 100
FINIT ; l'instruction qui manque dans lib masm32
fild source ; load source integer
fild var1 ; load 100
fdiv ; divide source by 100
fild percent ; load required percentage
fmul ; multiply 1% by required percentage
fist var1 ; store result in variable
mov eax, var1

ret
PourCent endp

ToutEnMasm
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 sept. 2004 à 23:20
vecchio, regarde fichier lldvrm.asm sur ton disque dur.

ciao...
BruNews, Admin CS, MVP VC++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 sept. 2004 à 23:24
voila qui pourrait bien m'aider, je vais regarder
0
Rejoignez-nous