20.08.2013 Aufrufe

RO-Tutorien 15 und 16 - Tutorium von Chris Mandery

RO-Tutorien 15 und 16 - Tutorium von Chris Mandery

RO-Tutorien 15 und 16 - Tutorium von Chris Mandery

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

<strong>Tutorien</strong> zur Vorlesung “Rechnerorganisation”<br />

<strong>Tutorien</strong>woche 4 am 18.05.2011<br />

1 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik<br />

KIT – Universität des Landes Baden-Württemberg <strong>und</strong><br />

nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu


Heute<br />

Wiederholung der MIMA-Architektur<br />

MIMA-Befehl JIND (Jump Indirect)<br />

MIMA-Befehl JMS (Jump Subroutine)<br />

Übungsaufgabe: Wochentagsberechnung in MIMA<br />

2 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


Die Architektur der MIMA<br />

3 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


Befehle der MIMA<br />

4 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


ALU-Operationen der MIMA<br />

5 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


Mikrobefehlsformat der MIMA<br />

6 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JIND (Jump Indirect)<br />

JIND a: Neuer Befehl mit dem Opcode D<br />

→ <br />

Springt zu der Adresse, die in den 20 niederwertigen Bits der<br />

Speicherstelle steht, die durch a referenziert wird<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

7 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JIND (Jump Indirect)<br />

JIND a: Neuer Befehl mit dem Opcode D<br />

→ <br />

Springt zu der Adresse, die in den 20 niederwertigen Bits der<br />

Speicherstelle steht, die durch a referenziert wird<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

7 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JIND (Jump Indirect)<br />

JIND a: Neuer Befehl mit dem Opcode D<br />

→ <br />

Springt zu der Adresse, die in den 20 niederwertigen Bits der<br />

Speicherstelle steht, die durch a referenziert wird<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

7 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JMS (Jump Subroutine)<br />

JMS a: Neuer Befehl mit dem Opcode C<br />

→ → <br />

Schreibt die Folgeadresse der aktuellen Adresse an die<br />

Speicherstelle a <strong>und</strong> springt zur Adresse, die auf a folgt<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

8 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JMS (Jump Subroutine)<br />

JMS a: Neuer Befehl mit dem Opcode C<br />

→ → <br />

Schreibt die Folgeadresse der aktuellen Adresse an die<br />

Speicherstelle a <strong>und</strong> springt zur Adresse, die auf a folgt<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

8 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


MIMA-Befehl JMS (Jump Subroutine)<br />

JMS a: Neuer Befehl mit dem Opcode C<br />

→ → <br />

Schreibt die Folgeadresse der aktuellen Adresse an die<br />

Speicherstelle a <strong>und</strong> springt zur Adresse, die auf a folgt<br />

Wie sieht das Mikroprogramm für die Ausführungsphase aus?<br />

8 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik


Wochentagsberechnung in MIMA<br />

Aufgabe: Zu einem Datum in 2004 den Wochentag (0 = Sonntag, 1<br />

= Montag, ...) berechnen<br />

Vorgegebene Speicherstellen:<br />

9 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

0x00020: Tag (Eingabe)<br />

0x00021: Monat (Eingabe)<br />

0x00030: Wochentag (Ausgabe)<br />

0x00100: Startpunkt des Programms<br />

Algorithmus (in C):<br />

<br />

<br />

<br />

Fakultät für Informatik


Wochentagsberechnung in MIMA<br />

Aufgabe: Zu einem Datum in 2004 den Wochentag (0 = Sonntag, 1<br />

= Montag, ...) berechnen<br />

Vorgegebene Speicherstellen:<br />

9 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

0x00020: Tag (Eingabe)<br />

0x00021: Monat (Eingabe)<br />

0x00030: Wochentag (Ausgabe)<br />

0x00100: Startpunkt des Programms<br />

Algorithmus (in C):<br />

<br />

<br />

<br />

Fakultät für Informatik


Wochentagsberechnung in MIMA<br />

Aufgabe: Zu einem Datum in 2004 den Wochentag (0 = Sonntag, 1<br />

= Montag, ...) berechnen<br />

Vorgegebene Speicherstellen:<br />

9 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

0x00020: Tag (Eingabe)<br />

0x00021: Monat (Eingabe)<br />

0x00030: Wochentag (Ausgabe)<br />

0x00100: Startpunkt des Programms<br />

Algorithmus (in C):<br />

<br />

<br />

<br />

Fakultät für Informatik


Fertig!<br />

Quelle: http://xkcd.com/707/<br />

10 <strong>Chris</strong>tian A. <strong>Mandery</strong>:<br />

<strong>RO</strong>-<strong>Tutorien</strong> <strong>15</strong> <strong>und</strong> <strong>16</strong><br />

Fakultät für Informatik

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!