Du befindest dich hier: FSI Informatik » jahrgaenge » 2006 » "Muster"-Lösungen » "Muster"-Lösungen zu Klausuren aus Technische Informatik 2 » Aufgabe 1   (Übersicht)

Dies ist eine alte Version des Dokuments!


Aufgabe 1

  • 1) 1, 2 , 1, 2, 1, 1, 1, 1
  • 2) 1, 1, 2, 1, 2, 1, 2, 2
  • 3) mov für Speicherzugriff; in/out für IO-Zugriff
  • 4) ?

Aufgabe 2

  • A E X
  • A E X
  • A X E
  • A X E
  • AE AE AE
  • A E E
  • E X A

Aufgabe 3

  • 1) 2^16 adressen, an jeder adresse liegen 8 bit; 2^16 * 8bit = 64 KB; -48 KB für programm = 16 KB ⇒ 1024
  • 2) 20kb
  • 3)
movl 8(%esp), %eax
xorl %ebx, %ebx
orb %al, %bl
shrl $8, %eax
shll $8, %ebx
orb %al, %bl
shrl $8, %eax
shll $8, %ebx
orb %al, %bl
shrl $8, %eax
shll $8, %ebx
orb %al, %bl
movl %ebx, 4(%esp)
ret

alternativ:

movl 8(%esp), %eax
movl %ah, %bl
movl %al, %bh
shrl $16, %eax
shll $16, %ebx
movl %ah, %bl
movl %al, %bh
movl %ebx, 4(%esp)
ret

Aufgabe 4

  • 1) tanx → taylor reihe; div → newton-raphson / shift / subtraktion; mul → addition / shift
  • 2) (steht nirgends schnell):
#define unsigned int ui
#define unsigned short us
 
ui mult(us x, us y) {
    ui sum = 0;
    for (int i = 0; i < y; i++) sum += x;
    return sum;
}

Aufgabe 5

  • 1)
#define unsigned int ui
 
ui fibo(ui x) {
    ui res;
    if (x < 2) {
        res = 1;
        goto more;
    }
    x = x - 1;
    res = fibo(x);
    x = x - 1;
    res = res + fibo(x);
    more: return res;
}

Assembler:

 movl 4(%esp), %ebx
 cmpl $2, %ebx
 jge else
 movl $1, %eax
 ret
else:
 subl $1, %ebx
 pushl %ebx
 call fibo
 subl $4, %esp
 movl %eax, %ecx
 subl $1, %ebx
 pushl %ebx
 call fibo
 subl $4, %esp
 addl %ecx, %eax
 ret

Aufgabe 6

???

Aufgabe 7