Multiplication Assembleur Delphi

Résolu
eliassovich Messages postés 2 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 13 mai 2012 - 6 mai 2012 à 16:59
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 13 mai 2012 à 01:26
bonjour,

j'essaye de faire une multiplication sur assembleur mais le programme se bloque lors de l'affichage du résultat Violation d’accès à l'adresse.
pouvez vous me donner plus d'infos sur ce sujet.

voila la procedure que j'utilise.

procedure TForm1.Button3Click(Sender: TObject);
var
a,b,r:integer;
begin
A:=strtoint(Edit1.text);
B:=strtoint(Edit2.text);

asm
Mov EAX,A
Mov EBX,B
Mul EBX
mov r,EBX
end;
Edit3.Text:=IntToStr(r);
end;


cordialement.

2 réponses

eliassovich Messages postés 2 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 13 mai 2012
9 mai 2012 à 09:10
bonjour,

je vais à moi même, car c’était une faute de ma part alors voila la solution


procedure TForm1.Button3Click(Sender: TObject);
var
a,b:integer;
begin
A:=strtoint(Edit1.text);
B:=strtoint(Edit2.text);
asm
Mov EAX,B // mettre la valeur de B dans EAX
iMUL EAX,2 // faire la valeur de EAX *2
Add A,EAX // addition du résultat de la MUL dans EAX avec la valeur de A
end;
Edit3.Text:=IntToStr(A);
end;


merci
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 mai 2012 à 01:26
pourquoi vouloir la faire en assembleur ?
ici ce ne sera pas plus rapide que de faire :
Edit3.Text := IntToStr(StrToInt(Edit1.Text) * StrToInt(Edit2.Text));

________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
0
Rejoignez-nous