Gedächtnisprotokoll RS08-2: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
Zeile 83: Zeile 83:
       add %i1, %o1, %g1
       add %i1, %o1, %g1
       ld [%g1], %f4
       ld [%g1], %f4
     ! fehlender Befehl
     ! fehlender Befehl
     !
     !
     
       add %i2, %o1, %g1
       add %i2, %o1, %g1
       ld [%g1], %f6
       ld [%g1], %f6
Zeile 98: Zeile 96:
        
        
       add %i5, 1, %i5
       add %i5, 1, %i5
     ! fehlender Befehl
     ! fehlender Befehl
     !
     !
       bl .schleife
       bl .schleife
       nop
       nop

Version vom 27. März 2008, 16:05 Uhr

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