Division en assembleur

Haox85 Messages postés 4 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 décembre 2009 - 16 juin 2009 à 18:17
Haox85 Messages postés 4 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 décembre 2009 - 17 juin 2009 à 14:25
Bonsoir tout le monde,
J'aimerai savoir comment faire pour diviser un nombre en assembleur.

En réalité, j'ai une valeur sur 10 bits qui représente la moyenne de 8 conversions analogiques. Mon signal analogique varie de 0 à 4,5V. J'aimerai que la moyenne représente un pourcentage de ce signal.

Donc si j'ai une moyenne correspondant à 2,25V, j'aimerai qu'il devienne 50 en décimal et ainsi l'afficher sur deux 7 segments

Merci de votre aide :)

2 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
17 juin 2009 à 11:29
Se servir du fpu,
a titre d'exemple un proc qui extrait un pourcentage d'une valeur
attention aux types de nombres entrés,chose non précisé dans le message.
Les intrustions peuvent être différentes si on utilise des réels,...
Içi il s'agit d'entiers (integer)
Attention aussi à l'état de la pile fpu (null en sortie)

PourCent proc PRIVATE source:DWORD, percent:DWORD
;  invoke   PourCent,Xresolution,80         ;80 % de Xresolution
 LOCAL var1:DWORD


 mov var1, 100   ; to divide by 100
 FINIT    
 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
0
Rejoignez-nous