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
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