Menu
Coddy logo textTech

Wie Befehle funktionieren

Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy — Lektion 4 von 45.

Sie wissen, dass die CPU Befehle nacheinander ausführt. Aber woher weiß die CPU, welcher Befehl als Nächstes ausgeführt werden soll? Wo sind die Befehle gespeichert? Und wie sieht ein Befehl eigentlich aus?

Anweisungen sind Zahlen.

Dies ist eine grundlegende Wahrheit über Computer. Alles ist eine Zahl. Die Daten, mit denen Sie arbeiten (wie die Zahl 42), sind eine Zahl. Die Adresse, an der Daten liegen (wie 1000), ist eine Zahl. Und die Befehle selbst (wie mov, add, cmp) sind ebenfalls Zahlen.

Wenn Sie Assembly-Code wie mov rax, 5 schreiben, wandelt der Assembler diesen menschenlesbaren Text in eine Zahl um, die die CPU versteht. Diese Zahl wird als Befehlscode bezeichnet.

Wo werden Anweisungen gespeichert?

Befehle werden im Speicher gespeichert, genau wie Daten. Es gibt keinen speziellen Ort für Befehle. Der Speicher enthält beides:

  • Daten (Zahlen, Zeichen, Arrays)
  • Befehle (das Programm selbst)

Die CPU kennt den Unterschied nicht. Sie liest einfach das, was sich an der Speicheradresse befindet, auf die der Program Counter zeigt. Sie haben in Lektion 0.1 kurz etwas über den PC erfahren. Jetzt ist es an der Zeit, genau zu verstehen, wie er funktioniert.

Der Programmzähler (auch Befehlszeiger genannt) ist ein spezielles Register innerhalb der CPU. Seine einzige Aufgabe besteht darin, die Speicheradresse des nächsten auszuführenden Befehls zu speichern.

Der Fetch-Execute-Zyklus:

Die CPU wiederholt diese drei Schritte endlos:

SchrittWas passiert
1. FETCHLies den Befehl an der Adresse im PC
2. EXECUTEFühre diesen Befehl aus
3. ADVANCESetze den PC auf den nächsten Befehl

Einfaches Beispiel:

Wenn PC = 1000, die CPU:

  • Ruft den Befehl an Adresse 1000 ab
  • Führt ihn aus
  • Setzt PC auf die nächste Adresse (1000 + Befehlsgröße)

Dann wiederholt es sich mit dem neuen PC-Wert.

Wie ein Befehl aussieht:

Jeder Befehl besteht aus zwei Teilen:

TeilWas er tutBeispiel
OpcodeWas zu TUN istmov, add, cmp
OperandenWorauf es angewendet wirdrax, 5, [result]

Einige Instruktionen haben einen Operanden (wie inc rax, um 1 zu addieren). Einige haben zwei (wie mov rax, 5). Einige haben drei (wie add rax, rbx, rcx in einigen Architekturen).

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen