Se connecter / S'enregistrer
Votre question

Depassement de division en dd assembleur

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
13 Décembre 2010 08:28:55

Bonjour, j'ai un petit soucis avec mon programme lorsque je l'éxécute : dépassement de division.

  1. .DATA
  2. message db "Veuillez introduire votre numéro de compte",13,10,"$"
  3. messageok db "Votre numéro de compte est bon",13,10,"$"
  4. messageko db "Votre numéro de compte est faux",13,10,"$"
  5. nombre1 dd 0
  6. nombre2 dd 0
  7. nombre3 dd 0
  8. base dd 10
  9. digit db 0
  10. multi dd 10000000
  11. divi db 97
  12. reste dd 0
  13.  
  14. ;calcul:
  15.  
  16. mov eax, nombre1
  17. mul multi
  18.  
  19. mov nombre1,eax
  20. add eax,nombre2
  21.  
  22. mov nombre1, dl
  23. mov dl,nombre1
  24. div divi
  25.  
  26.  
  27. sub edx,nombre3
  28.  
  29. cmp edx,0


le programme consiste à prendre un numéro de compte de multiplier par 10000000 et d'additionner au 2e nombre et de faire le modulo 97 pour enfin vérifier que le reste est égale au 3e nombre du compte.
merci

Autres pages sur : depassement division assembleur

a b L Programmation
13 Décembre 2010 20:25:20

Tu déclares divi en db, donc tu fais un DIV avec un diviseur 8 bits.
Avec "div divi", tu divises AX (et pas EAX) par 97 => quotient dans AL et reste dans AH
Tu peux diviser DX:AX ou EDX:EAX si tu augmentes les tailles
m
0
l
Contenus similaires
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS