Matware456
Messages postés19Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention27 août 2009
-
25 avril 2009 à 20:50
Matware456
Messages postés19Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention27 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
Matware456
Messages postés19Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention27 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.