Aufgabenblatt
1. Aufgabe : MIPS-Befehlssatz
a) Untenstehende Tabelle 1.1 zeigt eine kurze MIPS-Befehlsfolge.
Entwickeln Sie mit Hilfe des Beiblatts „MIPS Reference Data“ den MIPS-Maschinencode. Soweit nicht
ausdrücklich angegeben, werden alle numerischen Werte als Dezimalzahlen dargestellt.
Stellen Sie, beginnend bei der Hauptspeicheradresse (1000)16 ,den MIPS-Maschinencode für die ersten zwei
Befehle sowohl in dem nach „little endian“(low byte, low adress) als auch nach „big endian“ organisierten
Hauptspeicher dar.
Adresse MIPS-Assemblerbefehl
(1000)16 add $t2, $t3, $t4
(1004)16 andi $t4, $s7, 18
(1008)16 sll $t7, $t6, 2
(100C)16 addi $t8, $t7, 26416
(1010)16 lw $s0, 264C16($t2)
(1014)16 sw $t9, 48C16($s4)
Rechnerstrukturen 1 1
Sommersemester 2021 Rüffer
1. Aufgabenblatt
b) Tabelle 1.2 zeigt eine Folge von MIPS-Maschinencodeworten. Geben Sie mit Hilfe des „MIPS Reference
Data“ den MIPS-Assemblerbefehl an, der zu dem in der Tabelle aufgeführten MIPS-Maschinencodewort
gehört.
rd shamt funct
MIPS-Assemblerbefehl op rs rt
constant or address
2316 1010 1610 164016
Rechnerstrukturen 1 2
Sommersemester 2021 Rüffer
1. Aufgabenblatt
c) Im Befehlszähler PC stehe der Wert (2000)16. Unter dieser Adresse ist der Maschinencode des MIPS-
Assemblerbefehls beq $216, $zero, (168)16 gespeichert.
• Geben Sie den Maschinencode dieses MIPS-Assemblerbefehls an.
• Berechnen Sie die Hauptspeicheradresse des Befehls, zu dem mit dem genannten
Assemblerbefehl bei Ausführung des Sprungs verzweigt wird.
Rechnerstrukturen 1 3
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Rechnerstrukturen 1 4
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Lösung 1. Aufgabe a)
Typ Operation
31 op 26 25 rs 21 20 rt 16 15 rd 11 10 shamt 6 5 funct 0
0 (B)16 (C)16 (A)16 0 (20)16
000000 01011 01100 01010 00000 100000
31 op 26 25 rs 21 20 rt 16 15 immediate 0
(C)16 (17)16 (C)16 (12)16
001100 10111 01100 0000 0000 0001 0010
Rechnerstrukturen 1 5
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Typ Operation
31 op 26 25 rs 21 20 rt 16 15 rd 11 10 shamt 6 5 funct 0
31 op 26 25 rs 21 20 rt 16 15 immediate 0
8 (F)16 (18)16 (264)16
001000 01111 11000 0000 0010 0110 0100
Rechnerstrukturen 1 6
Sommersemester 2021 Rüffer
1. Aufgabenblatt
31 op 25 rs 20 rt
26 21 16 15 immediate 0
(2B)16 (14)16 (19)16 (48C)16
101011 10100 11001 0000 0100 1000 1100
31 op 25 rs 20 rt
26 21 16 15 immediate 0
(23)16 (A)16 (10)16 (264C)16
100011 01010 10000 0010 0110 0100 1100
Rechnerstrukturen 1 7
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Speicherauszug:
Assemblerbefehl Maschinenwort
add $10, $11, $12 0000 0001 0110 1100 0101 0000 0010 0000 (016C5020)16
andi $12, $23, (18)10 0011 0010 1110 1100 0000 0000 0001 0010 (32EC0012)16
Rechnerstrukturen 1 8
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Lösung 1. Aufgabe b)
rd shamt funct
MIPS-Befehl op rs rt
constant or address
lw $s0, (1640)16 ($t2) 2316 1010 1610 164016
and $t5, $t2, $t4 0 1010 1210 1310 - 2416
sw $s6, (520)16 ($s0) 2B16 1610 2210 52016
Lösung 1. Aufgabe c)
31 op 26 25 rs 21 20 rt 16 15 rd 15 0
(4)16 2 0 (5A)16
hier: PC = (2000)16
Zieladresse = PC + 4 + (5A)16 ∙ 4 = (2000)16 + 4 + (168)16 = (216C)16
Rechnerstrukturen 1 9
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Lösung 1. Aufgabe d)
31 op 26 25 0
2 (8FACD3)16
000010 00 1000 1111 1010 1100 1101 0011
Nebenrechnung: 2 | 3 | E | B | 3 | 4 | C
0010|0011|1110|1011|0011|0100|1100
8 F A C D 3
|| : Zeichen für Konkatenation ( z.B. TEX-Anweisung: \concat), es wird aber auch das
Zeichen genutzt, d.h. PC = (PC+4)[31:28] (address<<2)
Rechnerstrukturen 1 10
Sommersemester 2021 Rüffer
1. Aufgabenblatt
Nach Ausführung des Sprungbefehls wird das Programm mit dem Befehl, der unter der Adresse
(723EB34C)16 gespeichert ist, fortgesetzt.
Rechnerstrukturen 1 11
Sommersemester 2021 Rüffer