Befehlsfolge
Jedes Computerprogramm besteht aus einzelnen Befehlsfolgen (Serie von Rechen-"Anweisungen"), die meist einer "baumartigen" Struktur entsprechen.Die Befehle werden von der programmierenden Person in einem "Quellcode" geschrieben und von einem Compiler-Programm in eine maschinenlesbare Form gebracht. Aus der Folge von "Befehlen" wird so eine (längere) Folge von Bits, die der Computer nacheinander sehr schnell abarbeitet.
Konkret "sagt" der zentrale Prozessor den von ihm angesteuerten "Registern" (Speicherzellen), was mit ihrem Speicherinhalt Schritt für Schritt zu geschehen hat.
Table of contents |
2 Komplexere Rechenaufgaben |
Es sollen in zwei Speicherzellen (Register A und B) des Computers zwei Variable vertauscht werden (exakter gesagt, ihr Zahleninhalt). Das geht nicht direkt durch Übertragung von A nach B, weil sonst der Inhalt von B verloren wäre. Daher ist ein Zwischenspeicher C notwendig.
Der Computer braucht dafür außer den 3 Zahlenspeichern A, B und C noch zwei Rechenregister 1 und 2, die quasi seine "Hände" darstellen.
Würde der PC unsere übliche Sprache verstehen, müsste man ihm z.B. folgende "Anweisungen" geben:
Eine etwas "höhere Programmiersprache" schreibt stattdessen:
Ein einfaches Beispiel
in einer Art Maschinencode
(beides zusammen ließe sich kürzer ausdrücken: Schreibe den Inhalt von A nach C, oder als "Zuweisung" c = a)
einfacher geschrieben
In einer "komfortablen" Programmiersprache würde das z.B. lauten:
Anmerkungen
Im 6-schrittigen Beispiel sind nicht unbedingt zwei Rechenregister ("Hände") erforderlich. Außerdem lassen sich zwei Zeilen und die Speicherzelle C einsparen - siehe das Optimierungsbeispiel unter "Compiler".
Die konkrete Steuerung von Befehlsfolgen erfolgt durch den Befehlszähler(engl. program counter oder instruction pointer). Er ist ein spezielles Register in der CPU, das die Speicheradresse des jeweils nächsten Befehls enthält. Nach Ausführung eines Befehls liest die CPU von dieser Adresse den nächsten Befehl, führt ihn aus und erhöht den Zähler.
Für wirkliche Programme und Berechnungen sind natürlich auch andere Funktionen außer der Zuweisung von Werten und dem Ansprechen von Registern erforderlich:
Komplexere Rechenaufgaben
Siehe auch: Adressierung, Bit, Computer, Compiler, Datenverarbeitung, logische Operatoren, Speicher, Steuerung