Kapitel 5: Instructions - Language of the Computer
1. Grundlagen der Rechnerorganisation
Instruction Set Architecture (ISA): Das Repertoire an Befehlen eines Computers, das als Schnittstelle
zwischen Hardware und Software dient.
Von-Neumann-Architektur (Stored Program Computers):
o Instruktionen werden genau wie Daten binär repräsentiert und im Speicher abgelegt.
o Programme können als Dateien verschickt und von anderen Programmen (z. B. Compilern)
verarbeitet werden.
CISC vs. RISC:
o CISC (Complex Instruction Set Computer): Einzelspezifische Befehle können komplexe Operationen
(Load, Arithmetik, Store) ausführen (z. B. x86).
o RISC (Reduced Instruction Set Computer): Fokus auf einfache Instruktionen für schnellere
Ausführung (z. B. MIPS, ARM, RISC-V).
Merksatz: Die ISA ist die vertragliche Grenze zwischen Compiler beziehungsweise Betriebssystem und
Prozessorhardware.
2. Die MIPS-Architektur
Design-Prinzipien:
1. Simplicity favors regularity: alle Befehle sind 32 Bit lang.
2. Smaller is faster: begrenzter Befehlssatz und 32 allgemeine Register.
3. Make the common case fast: Rechenoperationen arbeiten auf Registern.
4. Good design demands good compromises: drei Instruktionsformate statt eines einzigen Formats.
5. Load-Store-Prinzip: Nur Load- und Store-Befehle greifen direkt auf den Speicher zu.
MIPS-Register (32-Bit breit, R0 bis R31):
Name Nummer Verwendung
$zero 0 Konstante 0
$at 1 für den Assembler reserviert
$v0-$v1 2-3 Rückgabewerte
$a0-$a3 4-7 Argumente
$t0-$t7 8-15 temporäre Werte
$s0-$s7 16-23 Gesicherte Werte
$t8-$t9 24-25 weitere temporäre Werte
$gp 28 Global Pointer
$sp 29 Stack Pointer
$fp 30 Frame Pointer
$ra 31 Rücksprungadresse
Das Register File enthält 32 Register mit jeweils 32 Bit, zwei Leseports und einen Schreibport. Register sind deutlich
schneller als der Hauptspeicher.
Kapitel 5 - Instructions: Language of the Computer
, 3. MIPS-Befehlsformate
Format Felder Typische Verwendung
R-Format op, rs, rt, rd, shamt, funct Registeroperationen
I-Format op, rs, rt, immediate Immediate, Load/Store, Branch
J-Format op, target unbedingte Sprünge
I-Format
Das I-Format enthält ein 16-Bit-
Immediate. Bei arithmetischen
R-Format Befehlen wird dieses meist J-Format
op: 6-Bit-Opcode vorzeichenerweitert. Logische Das J-Format enthält ein 26-Bit-
rs und rt: Quellregister Immediate-Befehle verwenden Sprungziel. Da Befehle
rd: Zielregister dagegen Nullerweiterung. wortausgerichtet sind, werden
shamt: Shift-Betrag zwei Nullbits angehängt. Die
funct: genaue ALU-Funktion addi $t0, $s2, 4 oberen vier Bits stammen aus PC
lw $t0, 24($s3) + 4.
Beispiel: add $t0, $s1, $s2 sw $t0, 8($s3)
berechnet $t0 = $s1 + $s2. beq und bne
4. Arithmetische und logische Befehle
Arithmetik: add, sub, addi (add immediate)→ für Konstanten
Logik:
o Bitweise: and, andi, or, ori, nor → Invertierung durch nor mit $zero
o Shifts: sll (shift left logical), srl (shift right logical) – füllen mit 0-Bits auf.
Speicherzugriff (Alignment erforderlich: Wortadressen müssen Vielfache von 4 sein):
o lw (load word) / sw (store word): Laden/Speichern eines 32-Bit-Worts.
o lb (load byte) / sb (store byte): Laden/Speichern eines Bytes.
o Endianness: Big Endian (MSB an kleinster Adresse) vs. Little Endian (LSB an kleinster Adresse).
Netzwerk-Byte-Reihenfolge ist Big Endian.
Konstanten: Große 32-Bit-Konstanten werden mit lui (Load Upper Immediate) und ori in zwei Schritten
geladen.
Kontrollfluss:
o Bedingt: beq (branch if equal), bne (branch if not equal).
o Vergleiche: slt / slti (set on less than) setzt Zielregister auf 1, falls Bedingung wahr.
o Sprünge: j -jump (unbedingt), jal (Jump and Link für Prozeduraufrufe), jr (Jump Register für
Rücksprünge).
Kapitel 5 - Instructions: Language of the Computer
1. Grundlagen der Rechnerorganisation
Instruction Set Architecture (ISA): Das Repertoire an Befehlen eines Computers, das als Schnittstelle
zwischen Hardware und Software dient.
Von-Neumann-Architektur (Stored Program Computers):
o Instruktionen werden genau wie Daten binär repräsentiert und im Speicher abgelegt.
o Programme können als Dateien verschickt und von anderen Programmen (z. B. Compilern)
verarbeitet werden.
CISC vs. RISC:
o CISC (Complex Instruction Set Computer): Einzelspezifische Befehle können komplexe Operationen
(Load, Arithmetik, Store) ausführen (z. B. x86).
o RISC (Reduced Instruction Set Computer): Fokus auf einfache Instruktionen für schnellere
Ausführung (z. B. MIPS, ARM, RISC-V).
Merksatz: Die ISA ist die vertragliche Grenze zwischen Compiler beziehungsweise Betriebssystem und
Prozessorhardware.
2. Die MIPS-Architektur
Design-Prinzipien:
1. Simplicity favors regularity: alle Befehle sind 32 Bit lang.
2. Smaller is faster: begrenzter Befehlssatz und 32 allgemeine Register.
3. Make the common case fast: Rechenoperationen arbeiten auf Registern.
4. Good design demands good compromises: drei Instruktionsformate statt eines einzigen Formats.
5. Load-Store-Prinzip: Nur Load- und Store-Befehle greifen direkt auf den Speicher zu.
MIPS-Register (32-Bit breit, R0 bis R31):
Name Nummer Verwendung
$zero 0 Konstante 0
$at 1 für den Assembler reserviert
$v0-$v1 2-3 Rückgabewerte
$a0-$a3 4-7 Argumente
$t0-$t7 8-15 temporäre Werte
$s0-$s7 16-23 Gesicherte Werte
$t8-$t9 24-25 weitere temporäre Werte
$gp 28 Global Pointer
$sp 29 Stack Pointer
$fp 30 Frame Pointer
$ra 31 Rücksprungadresse
Das Register File enthält 32 Register mit jeweils 32 Bit, zwei Leseports und einen Schreibport. Register sind deutlich
schneller als der Hauptspeicher.
Kapitel 5 - Instructions: Language of the Computer
, 3. MIPS-Befehlsformate
Format Felder Typische Verwendung
R-Format op, rs, rt, rd, shamt, funct Registeroperationen
I-Format op, rs, rt, immediate Immediate, Load/Store, Branch
J-Format op, target unbedingte Sprünge
I-Format
Das I-Format enthält ein 16-Bit-
Immediate. Bei arithmetischen
R-Format Befehlen wird dieses meist J-Format
op: 6-Bit-Opcode vorzeichenerweitert. Logische Das J-Format enthält ein 26-Bit-
rs und rt: Quellregister Immediate-Befehle verwenden Sprungziel. Da Befehle
rd: Zielregister dagegen Nullerweiterung. wortausgerichtet sind, werden
shamt: Shift-Betrag zwei Nullbits angehängt. Die
funct: genaue ALU-Funktion addi $t0, $s2, 4 oberen vier Bits stammen aus PC
lw $t0, 24($s3) + 4.
Beispiel: add $t0, $s1, $s2 sw $t0, 8($s3)
berechnet $t0 = $s1 + $s2. beq und bne
4. Arithmetische und logische Befehle
Arithmetik: add, sub, addi (add immediate)→ für Konstanten
Logik:
o Bitweise: and, andi, or, ori, nor → Invertierung durch nor mit $zero
o Shifts: sll (shift left logical), srl (shift right logical) – füllen mit 0-Bits auf.
Speicherzugriff (Alignment erforderlich: Wortadressen müssen Vielfache von 4 sein):
o lw (load word) / sw (store word): Laden/Speichern eines 32-Bit-Worts.
o lb (load byte) / sb (store byte): Laden/Speichern eines Bytes.
o Endianness: Big Endian (MSB an kleinster Adresse) vs. Little Endian (LSB an kleinster Adresse).
Netzwerk-Byte-Reihenfolge ist Big Endian.
Konstanten: Große 32-Bit-Konstanten werden mit lui (Load Upper Immediate) und ori in zwei Schritten
geladen.
Kontrollfluss:
o Bedingt: beq (branch if equal), bne (branch if not equal).
o Vergleiche: slt / slti (set on less than) setzt Zielregister auf 1, falls Bedingung wahr.
o Sprünge: j -jump (unbedingt), jal (Jump and Link für Prozeduraufrufe), jr (Jump Register für
Rücksprünge).
Kapitel 5 - Instructions: Language of the Computer