48
Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph Oberweis, BBSW Trier

Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

Embed Size (px)

Citation preview

Page 1: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

Programmierung: Einführung

Programmausführung im Prozessor

Ein kleines Programm

Quellprogramm – Maschinenprogramm

Struktogramm und Algorithmus

Christoph Oberweis, BBSW Trier

Page 2: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

2

CPU

• CPU: Central Processing Unit

• deutsch: Zentrale Prozessoreinheit

• oder kurz: Prozessor (Hardwarekomponente)

Die CPU steuert über Software andere Bestandteile des PCs. Die grundlegende Eigenschaft des Prozessors ist

seine Programmierbarkeit. Der Prozessor führt Befehle aus.

Prozess, vergleichbare Begriffe: Ablauf, Vorgang

C.O.

Page 3: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

3

Alles im richtigen Takt!

C.O.

Ein Prozessortakt ist die Zeit für die Ausführung eines einfachen Befehls. Für die Division und andere komplizierter Befehle braucht der Prozessor mehrere Takte. Eine Taktfrequenz von einem Megahertz bedeutet, dass der Prozessor eine Million einfache Befehle pro Sekunde ausführen kann.Die Taktfrequenz gibt also die Arbeitsgeschwindigkeit des Prozessors an. Taktgeber ist ein Schwingquarz auf der Hauptplatine.

Page 4: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

4

Komponenten der CPU

C.O.

Vereinfachte Darstellung

Page 5: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

5

Komponenten der CPU

Steuerwerk: interpretiert die Befehle, steuert ihre Ausführung

C.O.

Page 6: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

6

Komponenten der CPU

Steuerwerk: interpretiert die Befehle, steuert ihre Ausführung

Register: kleine Spezialspeicher für Zwischenergebnisse und Befehle (schnellster Zugriff)

C.O.

Page 7: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

7

Steuerwerk: interpretiert die Befehle, steuert ihre Ausführung

Register: kleine Spezialspeicher für Zwischenergebnisse und Befehle (schnellster Zugriff)

Rechenwerk: ist für arithmetische und logische Funktionen zuständig

C.O.

Komponenten der CPU

Page 8: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

8

… und noch der Arbeitsspeicher

Steuerwerk: interpretiert die Befehle, steuert ihre Ausführung

Register: kleine Spezialspeicher für Zwischenergebnisse und Befehle (schnellster Zugriff)

Rechenwerk: ist für arithmetische und logische Funktionen zuständig

Arbeitsspeicher: hier stehenDaten und die Programme

C.O.

Page 9: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

9

Eingabe Verarbeitung Ausgabe

Steuerwerk: interpretiert die Befehle, steuert ihre Ausführung

Register: kleine Spezialspeicher für Zwischenergebnisse und Befehle (schnellster Zugriff)

Rechenwerk: ist für arithmetische und logische Funktionen zuständig

Arbeitsspeicher: hier stehenDaten und die Programme

C.O.

Eingabe

Verarbeitung

Ausgabe

Page 10: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

10C.O.

Abarbeitung eines BefehlsVereinfachte Darstellung

Page 11: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

11

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

C.O.

Befehlszyklus

1

Page 12: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

12

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

2. Dekodierphase: Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte, z. B. eine Addition.

C.O.

Befehlszyklus

1

2

Page 13: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

13

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

2. Dekodierphase: Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte, z. B. eine Addition.

3. Ausführungsphase: Das Rechenwerk wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den Daten in den Registern durchzuführen.

C.O.

Befehlszyklus

1

23

Page 14: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

14

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

2. Dekodierphase: Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte, z. B. eine Addition.

3. Ausführungsphase: Das Rechenwerk wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den Daten in den Registern durchzuführen.

4. Schreibphase: Das Ergebnis der Operation landet (abhängig vom Befehl) in einem der Register oder im Hauptspeicher.

C.O.

Befehlszyklus

1

2

4

3

Page 15: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

15

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

2. Dekodierphase: Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte, z. B. eine Addition.

3. Ausführungsphase: Das Rechenwerk wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den Daten in den Registern durchzuführen.

4. Schreibphase: Das Ergebnis der Operation landet (abhängig vom Befehl) in einem der Register oder im Hauptspeicher.

C.O.

Befehlszyklus

Hinweis: Aus Gründen der Vereinfachung wurde hier der Befehlszähler nicht berücksichtigt!

1

2

4

3

Page 16: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

16

1. Holphase: Zunächst muss ein Befehl aus dem Speicher geholt und in das Befehlsregister geladen werden.

2. Dekodierphase: Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte, z. B. eine Addition.

3. Ausführungsphase: Das Rechenwerk wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den Daten in den Registern durchzuführen.

4. Schreibphase: Das Ergebnis der Operation landet (abhängig vom Befehl) in einem der Register oder im Hauptspeicher.

C.O.Ein Befehlszyklus benötigt i.d.R. also mehrere CPU-Takte, wobei jede Phase

wiederum auch aus mehreren CPU-Takten bestehen kann.

Befehlszyklus

1

2

4

3

Page 17: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

17

Programmiert wird der Zyklus …

C.O.

Page 18: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

18

Programmiert wird der Zyklus …

C.O.

… mit einem Befehl als Ganzes, und nicht die einzelne Phase! Die sind nämlich im Prozessor schon festgelegt.

Page 19: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

19

Programmiert wird der Zyklus …

C.O.

… mit einem Befehl als Ganzes, und nicht die einzelne Phase! Die sind nämlich im Prozessor schon festgelegt.

• Holphase, • Dekodierphase• Ausführungsphase (Addition) • Schreibphase

Aus

Page 20: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

20

Programmiert wird der Zyklus …

C.O.

… mit einem Befehl als Ganzes, und nicht die einzelne Phase! Die sind nämlich im Prozessor schon festgelegt.

• Holphase, • Dekodierphase• Ausführungsphase (Addition) • Schreibphase

Aus wird der Additionsbefehl

ADD

Page 21: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

21C.O.

Addiert wird also mit ADD

Page 22: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

22C.O.

… aber wo kommen die Daten her???

Addiert wird also mit ADD

Page 23: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

23C.O.

Zur Erinnerung: Die Daten stehen in den Registern, damit das Rechenwerk sie auch nutzen kann:

… aber wo kommen die Daten her???

Page 24: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

24C.O.

AX BX CX DXName der Register

Daten

Zur Erinnerung: Die Daten stehen in den Registern, damit das Rechenwerk sie auch nutzen kann:

Register - kleine schnelle Speicher

Page 25: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

25

Auch hier gilt das EVA-Prinzip!

C.O.

Also müssen in die Register Daten eingegeben werden, damit das Rechenwerk auch arbeiten kann.

Page 26: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

26

Auch hier gilt das EVA-Prinzip!

C.O.

Also müssen in die Register Daten eingegeben werden, damit das Rechenwerk auch arbeiten kann.

AX BX CX DX

Page 27: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

27

Auch hier gilt das EVA-Prinzip!

C.O.

Also müssen in die Register Daten eingegeben werden, damit das Rechenwerk auch arbeiten kann.

AX BX CX DX

Zuerst das AX - Register:

MOV AX, 0003

Page 28: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

28

Auch hier gilt das EVA-Prinzip!

C.O.

Also müssen in die Register Daten eingegeben werden, damit das Rechenwerk auch arbeiten kann.

AX BX CX DX

Befehl wurde ausgeführt!

MOV AX, 0003

3

Page 29: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

29

Auch hier gilt das EVA-Prinzip!

C.O.

Also müssen in die Register Daten eingegeben werden, damit das Rechenwerk auch arbeiten kann.

AX BX CX DX

Und jetzt das CX-Register:

MOV CX, 0004

3

Page 30: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

30

Auch hier gilt das EVA-Prinzip!

C.O.

Jetzt stehen die Daten in den Registern: es kann gerechnet werden!

AX BX CX DX43

Page 31: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

31

Auch hier gilt das EVA-Prinzip!

C.O.

Jetzt stehen die Daten in den Registern: es kann gerechnet werden!

AX BX CX DX43

Der vollständige Additionsbefehl:

ADD AX, CX

Page 32: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

32

Auch hier gilt das EVA-Prinzip!

C.O.

AX BX CX DX43

Der vollständige Additionsbefehl:

ADD AX, CXAddiere auf den Inhalt des CX - Registers den Inhalt des CX - Registers!

Jetzt stehen die Daten in den Registern: es kann gerechnet werden!

Page 33: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

33

Auch hier gilt das EVA-Prinzip!

C.O.

AX BX CX DX43

Der vollständige Additionsbefehl:

ADD AX, CXAddiere auf den Inhalt des CX - Registers den Inhalt des CX - Registers!

E

V & A

Jetzt stehen die Daten in den Registern: es kann gerechnet werden!

Page 34: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

34

Auch hier gilt das EVA-Prinzip!

C.O.

AX BX CX DX47

Der vollständige Additionsbefehl:

ADD AX, CXAddiere auf den Inhalt des CX - Registers den Inhalt des CX - Registers!

E

V & A

Und nach der Programmausführung:

Page 35: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

35

Und jetzt das ganze Programm

C.O.

1. Schritt: In Register AX die Zahl 3 schreiben

2. Schritt: In Register CX die Zahl 4 schreiben

3. Schritt: Inhalte von CX und AX addieren und in AX speichern

Page 36: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

36

Und jetzt das ganze Programm

C.O.

1. Schritt: In Register AX die Zahl 3 schreiben

2. Schritt: In Register CX die Zahl 4 schreiben

3. Schritt: Inhalte von CX und AX addieren und in AX speichern

MOV AX, 0003MOV CX, 0004 ADD AX, CX

Page 37: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

37

Jetzt wird getestet

C.O.

Page 38: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

38

Jetzt wird getestet

C.O.

Prima!

Page 39: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

39

Der Haken:

C.O.

MOV AX, 0003

MOV CX, 0004

ADD AX, CX

Das versteht der Computer nicht!

Page 40: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

40

Die Lösung:

C.O.

MOV AX, 0003 B80300

MOV CX, 0004 B90400

ADD AX, CX 01C8

Es gibt Programme, welche die Assemblerbefehle in die

Maschinensprache übersetzen (z. B. unter DOS: debug).

Page 41: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

41

Vom Quellprogramm zum Maschinenprogramm

C.O.

MOV AX, 0003 B80300

MOV CX, 0004 B90400

ADD AX, CX 01C8

Es gibt Programme, welche die Assemblerbefehle in die

Maschinensprache übersetzen (z. B. unter DOS: debug).

Quellprogramm Maschinen- programm

Übersetzung

Page 42: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

42C.O.

So sieht es aus:

C.O.

Adressen Maschinenprg. Assemblerprg.

Page 43: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

43C.O.

MOV AX, 0003 B80300

MOV CX, 0004 B90400

ADD AX, CX 01C8

Es handelt sich hier um die Umwandlung eines Assemblerprogramms in ein Maschinenprogramm, welches die CPU direkt ausführen kann.

Beachte: Sowohl die Zeichen der Assemblersprache als auch die Maschinenbefehle sind im Computer binär abgespeichert. Die HEX-Codierung (z. B.: B9) dient nur der besseren Lesbarkeit; „MOV CX, 0004“ ist in der binären Darstellung nicht identisch mit „B90400“, sonst wäre ja die Übersetzung nicht notwendig.

Anmerkung

Page 44: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

44

Darstellung der Logik: Struktogramm

C.O.

1. Schritt: In Register AX die Zahl 3 schreiben

2. Schritt: In Register CX die Zahl 4 schreiben

3. Schritt: Inhalte von CX und AX addieren und in AX speichern

In Register AX die Zahl 3 schreiben

In Register CX die Zahl 4 schreiben

Inhalte von CX und AX addieren und in AX speichern

Page 45: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

45

Darstellung der Logik: Struktogramm, allgemeine Formulierung

C.O.

X := 3

Y := 4

Y := Y + X

Page 46: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

46

Darstellung der Logik: Struktogramm, allgemeine Formulierung

C.O.

X := 3

Y := 4

Y := Y + X

Beachte: Die Befehle/Anweisungen sind eindeutig und ausführbar, ihre Anzahl endlich und ihre Befolgung liefert nach endlich vielen Schritten die Lösung eines Problems.

Page 47: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

47

Algorithmus

C.O.

Die Befehle/Anweisungen sind eindeutig und ausführbar, ihre Anzahl endlich und ihre Befolgung liefert nach endlich vielen Schritten die Lösung eines Problems.

Trifft dies auf eine Anweisungsliste zu, spricht man von einem Algorithmus.

Die Befehle/Anweisungen sind eindeutig und ausführbar, ihre Anzahl endlich und ihre Befolgung liefert nach endlich vielen Schritten die Lösung eines Problems.

Trifft dies auf eine Anweisungsliste zu, spricht man von einem Algorithmus.

Page 48: Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph

48

Ausblick: Höhere Programmiersprache

C.O.

a = InputBox("Wert für a:") b = InputBox("Wert für b:")

c = a + b

MsgBox ("Summe: " & c)

E

VA

Quellprogramm: