• Keine Ergebnisse gefunden

Grundlagen der Rechnerarchitektur

N/A
N/A
Protected

Academic year: 2022

Aktie "Grundlagen der Rechnerarchitektur"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Grundlagen der Rechnerarchitektur

MIPS‐Assembler

(2)

Übersicht

• Arithmetik, Register und Speicherzugriff

• Darstellung von Instruktionen

• Logische Operationen

• Weitere Arithmetik

• Branches und Jumps

• Prozeduren

• 32‐Bit‐Konstanten und Adressierung

• Synchronisation

• Exceptions

• Pseudoinstruktionen, Direktiven und Makros

(3)

Motivation

(4)

Warum ein Assembler‐Kurs?

• Wir wollen etwas über Rechnerarchitektur lernen. 

Assembler ist ein Teil davon.

• Nach dem Erlernen von Assembler eines Systems,  lernt man Assembler anderer Rechner kinderleicht

• Während wir uns mit Assembler beschäftigen 

lernen wir auch generelle Konzepte kennen, wie 

die Hardware in Computern und eingebetteten 

Systemen organisiert ist

(5)

Vor‐ und Nachteile von Assembler

• Wann sollte man Assembler programmieren?

– Code‐Größe oder Geschwindigkeit sollen bis auf das äußerste  ausgereizt werden

– Verwendung  spezieller Maschineninstruktionen, die ein Compiler  nicht nutzt  (in der Regel bei CISC) 

– Es gibt für die Computer‐Hardware keine höhere Sprache

• Meist wird ein hybrider Ansatz gewählt

– Man programmiert das meiste in einer High‐Level‐Sprache

– Nur kleine Teile des gesamten Codes werden direkt in Assembler  optimiert

• Nachteil von Assembler

– Programme laufen nur für den Hardwaretyp für den diese  programmiert sind

– Assembler‐Code ist im Vergleich zu High‐Level‐Sprachen deutlich  länger

• Programmieren dauert deutlich länger

• Programmieren ist fehleranfälliger (insbesondere wegen fehlender Struktur)

(6)

Assembler am Beispiel der MIPS‐Architektur

• Frühere Einsatzgebiete MIPS

– Silicon Graphics Unix‐Workstations (z. B. SGI Indigo2)  – Silicon Graphics Unix‐Server (z. B. SGI Origin2000) 

– DEC Workstations (z.B. DECstation‐Familie und DECsystem) – Siemens bzw. SNI Server der RM‐Serie

– Control Data Corporation Computer des Typs CDC 4680 

• Heutiger Einsatz von MIPS in eingebetteten Systemen

– Cobalt‐Server bis RaQ/Qube2 – BMW‐Navigationssysteme – die Fritz!Box

– Satellitenreceiver – Dreambox

– Konica Minolta DSLRs 

– Sony‐ und Nintendo‐Spielkonsolen

Quelle der Liste: de.wikipedia.org/wiki/MIPS‐Architektur

(7)

Begleitend: SPIM‐ und MARS‐Simulator

Programmieren lernt man nicht durch zuschauen!

Alle Konzepte sollte man hier selber ausprobieren!

(8)

Arithmetik, Register und Speicherzugriff

(9)

Arithmetik und Zuweisungen

C Programm:

a = b + c;

d = a – e;

MIPS Instruktionen:

Einfache Arithmetik mit Zuweisung

C Programm:

f = (g + h) – (i + j);

MIPS Instruktionen (verwende temporäre  Variablen t0 und t1):

Komplexere Arithmetik mit Zuweisung

(10)

Die Operanden sind Register

C Programm:

f = (g + h) – (i + j);

Sei hierbei:

g in Register $s1 gespeichert h in Register $s2 gespeichert i in Register $s3 gespeichert j in Register $s4 gespeichert f in Register $s0 gespeichert

MIPS Instruktionen (verwende temporäre  Register $t0 und $t1):

add $t0, $s1, $s2 # t0=g+h add $t1, $s3, $s4 # t1=i+j sub $s0, $t0, $t1 # f=t0-t1

Voriges Beispiel: Komplexere Arithmetik mit Zuweisung

MIPS Registergröße = 32 Bit

Assembler‐Syntax:

Das Zeichen  # leitet für den Rest der Zeile einen Kommentar ein. 

Der Text wird vom Assembler einfach ignoriert.

(11)

Speicher‐Operanden

C Programm:

g = h + A[8];

Sei hierbei:

g in Register $s1 gespeichert h in Register $s2 gespeichert

Basisadresse von A in Register $s3

MIPS Instruktionen (verwende temporäres  Register $t0):

(12)

Alignment‐Restriction

Zugriff auf A[8], wenn Basisadresse von A in Register $s3 gespeichert?

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(13)

Laden und Speichern

C Programm:

A[12] = h + A[8];

Sei hierbei:

Basisadresse von A in Register $s3  und h in Register $s2 gespeichert

MIPS Instruktionen (verwende temporäre  Register $t0):

Referenzen

ÄHNLICHE DOKUMENTE

Grundlagen der Rechnerarchitektur ‐ Logik und Arithmetik 86 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and

[PattersonHennessy2012] David A. Patterson und John  L. Hennessy, „Computer Organization and Design“, 

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur ‐

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012.?.

Grundlagen der Rechnerarchitektur ‐ Einführung 25 Bildquellen: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur ‐

[PattersonHennessy2012] David A. Patterson und  John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012. 2.4 Signed and Unsigned

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur ‐