Protokoll vom 20.12.2004 David Spielberger
Zu Von-Neumann-Rechner
- Speicher: Programme, Daten, Ergebnisse
- 5 Funktionseinheiten
- Struktur des Rechners ist unabhängig vom jeweiligen Problem
- Programm wird im Speicher abgelegt
- Der Speicher wird in gleichgroße Zellen unterteilt, die fortlaufend nummeriert werden (Adresse)
- Aufeinanderfolgende Befehle werden in aufeinander folgenden Speicherzellen abgelegt. (Prinzip des linearen Programms)
- Durch Sprungbefehle kann die Abarbeitung der Befehle verändert werden.
- Es gibt arithmetische Befehle (+,-,…); Transportbefehle (vom Speicher zum Rechenwerk); bedingte Sprünge (LDA – Lade in Akkumulator; STO – Speichere Inhalt des Akkumulators im Speicher)
o Arithmetische Befehle:
· ADD (addiere zum Inhalt des Akk.)
· SUB (subtrahiere vom Inhalt des Akk.)
· MUL
· DIV
o Sprungbefehle:
· BRT (unbedingter Sprung)
· BRE (bedingter Sprung; wenn Inhalt des Akk. = 0, dann folgt Sprung)
· BRP (bedingter Sprung; wenn Inhalt des Akk. > 0, dann folgt Sprung)
· END (beim Programmende)
- Adressteil
o U: unmittelbare Adressierung
§ z.B. LDAU 34 (34 wird unmittelbar in den Akku geladen)
o D: direkte Adressierung
§ z.B. LDAD 34 (Inhalt der Speicherzelle 34 wird in den Akk. Geladen)
a:= 4 * a + 9
Nr |
Befehl |
Akk. |
30 (a) |
31 (4) |
32 |
0 |
LDAD 31 |
4 |
2 |
4 |
|
1 |
MULD 30 |
8 |
|
|
|
2 |
ADDU 9 |
17 |
|
|
|
3 |
STOD 30 |
|
17 |
|
|
4 |
END |
|
|
|
|
a:= (b - a)² + 2 a
30 |
31 |
32 |
a |
b |
h |
(h ist eine Hilfsvariable)
Nr |
Befehl |
|
0 |
LDAD 31 |
|
1 |
SUBD 30 |
|
2 |
STOD 32 |
à h:=b-a |
3 |
MULD 32 |
|
4 |
STOD 32 |
à h:=h*h |
5 |
LDAU 2 |
|
6 |
MULD 30 |
à Akk.: 2*a |
7 |
ADDD 32 |
|
8 |
STOD 30 |
|
9 |
END |
|
CosiWin: c:= a + b + 3
30 |
31 |
32 |
33 |
a |
b |
3 |
c |
Die Summe der ersten „n“ natürlichen Zahlen, programmiert mit einer for-Schleife
Procedure TForm1.Summe
VAR N, I, Sum : integer;
Begin
N:=StrToInt(edit1.text);
Sum:=0;
For I:=0 to N do
Sum:= sum + I;
Edit1.text:= IntToStr(sum);
End;
Nr |
Befehl |
Akk. |
30 |
31 |
32 |
|
|
|
N=3 |
Sum |
i |
0 |
LDAU 0 |
0 |
|
|
|
1 |
STOD 31 |
|
|
0 |
|
2 |
LDAU 1 |
1 |
|
|
|
3 |
STOD 32 |
|
|
|
1 |
4 |
LDAD 31 |
Sum |
|
|
|
5 |
ADDD 32 |
Sum + I |
|
|
|
6 |
STOD 31 |
|
|
‘sum’ |
|
7 |
LDAD 32 |
I |
|
|
|
8 |
ADDU 1 |
|
|
|
|
9 |
STOD 32 |
|
|
|
|
10 |
LDAD 30 |
|
|
|
|
11 |
SUBD 32 |
|
|
|
|
12 |
ADDU 1 |
|
|
|
|
13 |
BRPD 4 |
|
|
|
|
14 |
END |
|
|
|
|