+ All Categories
Home > Documents > Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm –...

Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm –...

Date post: 05-Apr-2015
Category:
Upload: wilbert-druse
View: 114 times
Download: 3 times
Share this document with a friend
48
Programmierung: Einführung Programmausführung im Prozessor Ein kleines Programm Quellprogramm – Maschinenprogramm Struktogramm und Algorithmus Christoph Oberweis, BBSW Trier
Transcript
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:


Recommended