Gedächtnisprotokoll RS08-2
Aufgabe 1
Aufgabe 2
Aufgabe 3
Aufgabe 4
Aufgabe 5
Aufgabe 6
Aufgabe 7
Aufgabe 8
Aufgabe 9
( 15 Punkte )
Was macht dieses Programm:
funktion:
save %sp, -120, %sp
mov %i0, %o0 ! %o0 = x
smul %o0, %o0, %o3
smul %o0, %o3, %o2
sll %o2, 2, %o0
sll %o2, 3, %o1
add %o0, %o1, %o2
sll %o3, 1, %o0
sll %o3, 4, %o1
add %o0, %o1, %o3
add %o3, %o2, %o3
add %o3, 60, %o0
sra %o0, 31, %g1
wr %g0, %g1, %y
nop
nop
nop
sdiv %o0, 18, %i0
jmp %i7+8
restore
Aufgabe 10
(20 Punkte )
Bei folgendem Programm gab es Übertragungsprobleme und zwei Befehle konnten nicht mehr entziffert werden. Rekonstruieren Sie diese.
.global psum
.section ".rodata"
.null: .word 0, 0
.section ".text"
! double psum( int n, double x[], double y[] )
! %i0 -> n
! %i1 -> x[]
! %i2 -> y[]
psum:
save %sp, -120, %sp
sethi %hi(.null), %o0
ldd [%o0 + %lo( .null )], %f4
st %f4, [%fp-16]
st %f4, [%fp-12]
mov %g0, %i5
cmp %g0, %i0
bge .ende
nop
.schleife:
ld [%fp-16], %f8
ld [%fp-12], %f9
mov %i5, %o0
sll %o0, 3, %o1
add %i1, %o1, %g1
ld [%g1], %f4
! fehlender Befehl
!
add %i2, %o1, %g1
ld [%g1], %f6
ld [%g1+4], %f7
fmuld %f4, %f6, %f4
faddd %f8, %f4, %f4
st %f4, [%fp-16]
st %f5, [%fp-12]
add %i5, 1, %i5
! fehlender Befehl !
bl .schleife
nop
.ende:
ldd [%fp-16], %f4
std %f4, [%fp-8]
fmovs %f4, %f0
fmovs %f5, %f1
jmp %i7+8
restore
Aufgabe 11
Augabe 12
(6 Punkte) Wir betrachten ein RAID-5 System mit 4 Platten. Die platte 2 sei vollständig ausgefallen. Rekonstruieren Sie den Inhalt der Platte 2!
platte 1: 0110 1100 00 01 0111 01
platte 3: 1110 1010 0011 1111 10
platte 4: 0100 1110 0101 00 01 11