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