Einzelnen Beitrag anzeigen

der olli

Registriert seit: 18. Mai 2004
14 Beiträge
 
#1

Problem in Assembler: Grundrechenarten

  Alt 8. Mär 2006, 19:01
Hi!

Wir programmieren in der Schule momentan Assembler in Delphi. Zu nächster Stunde sollen wir ein Programm, welches die Grundrechenarten beherrscht (- Addieren, Subtrahieren, Multiplizieren und Dividieren -), schreiben, sollen uns das Wissen allerdings selber aneignen.
Addition und Subtraktion habe ich bereits geschafft zu programmieren, allerdings hänge ich nun bei der Syntax für die Multiplikation und die Division (- es soll geprüft werden, ob durch 0 dividiert wird -) - und da wir erst letzte Stunde mit dem Thema angefangen haben, weiß ich leider nicht so recht, wie ich es richtig machen soll. Es hängt wohl irgendwie damit zusammen, dass ich mit Integer arbeite ... Ich poste einfach mal den Quellcode:
Delphi-Quellcode:
var
  Form1: TForm1;
  x, y : Integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 x := StrToInt(InputBox('Eingabe','Erste Zahl',''));
 y := StrToInt(InputBox('Eingabe','Zweite Zahl',''));
end;

procedure TForm1.bt_beendenClick(Sender: TObject);
begin
 Form1.Close
end;

procedure TForm1.Button2Click(Sender: TObject); // Addition
var h : Integer;
begin
 h := y;
 asm
  mov EAX, x
  add h, EAX
 end;
 ShowMessage('Ergebnis: ' + IntToStr(h))
end;

procedure TForm1.Button3Click(Sender: TObject); // Subtraktion
var h, h2 : Integer;
begin
 h := y;
 h2 := x;
 asm
  mov EAX, h
  sub h2, EAX
 end;
 ShowMessage('Ergebnis: ' + IntToStr(h2))
end;

procedure TForm1.Button4Click(Sender: TObject); // Multiplikation
var h, h2 : Integer;
begin
 h := y;
 h2 := x;
 asm
  mov EAX, h
  // fmul h2, EAX
 end;
 ShowMessage('Ergebnis: ' + IntToStr(h2))
end;

procedure TForm1.Button5Click(Sender: TObject); // Division
var h, h2 : Integer;
begin
 h := y;
 h2 := x;
 asm
  mov EAX, h
  idiv h2, EAX
 end;
end;
Wie ihr seht, bin ich bei den beiden Prozeduren noch nicht allzu weit gekommen (- Fehlermeldung: Ungültige Kombination von Opcode und Operanden -) ... Ich hoffe, mir kann jemand bei der Lösung helfen!

Gruß,
Olli
  Mit Zitat antworten Zitat