Division en assembleur

Résolu
Matware456 Messages postés 19 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 27 août 2009 - 25 avril 2009 à 20:50
Matware456 Messages postés 19 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 27 août 2009 - 25 avril 2009 à 23:43
Bonjour !
J'ai commencé à me mettre à l'assembleur sur Delphi et j'ai un problème concernant cette fonction qui est censée effectuer une division (ici, je cherche à diviser A par B) :

function Division(A,B:integer):string;
begin
  Asm
    MOV EAX,B
    DIV A
    MOV B,EAX
  End;
  Result:=IntToStr(b);
end;
Et quand A 10 et B 5, Delphi me renvoie -2147483648 O_o... Je ne comprend pas, la syntaxe est pourtant correcte, non ?

Merci d'avance pour votre aide précieuse et bonne soirée !
Matware456

2 réponses

Matware456 Messages postés 19 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 27 août 2009
25 avril 2009 à 23:43
Merci pour ce tutoriel que je ne connaissais pas mais j'ai enfin trouvé la réponse à mon problème : j'avais oublié l'instruction xor edx,edx. En effet, les bits de poids forts du registre EDX interféraient avec le résultat de la division.

Problème résolu, désolé du dérangement.
3
beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
25 avril 2009 à 23:27
bonsoir,

ici un petit cours en assembleur :
http://deamonftp.free.fr/deamoncrack/Pages/cours-asm.htm#4

Disorder.
0
Rejoignez-nous