Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Klausur 904
Um das hier mal fortzuführen [alle angaben ohne gewähr…]
Aufgabe 1
a) 3, 4, 5, 6
b) zeitkritische Stellen, Benutzung von Ressourcen (zB lesen von Tastaturpuffer...)
c) carry = übertrag
zero = wenn ergebnis null ist
negative = wenn ergebnis negativ ist
iterrupt = ob interrupts zugelassen werden
Aufgabe 2
a) struct foo {
char c
signed word i
int n
}
Byte Order ist Little Endian
b) Öhm, weil hmm... Vielleicht weil die Byte Order zB bei Netzwerkgeschichten wichtig ist und der Programmierer Acht geben muss, aber die BitOrder nur auf Hardware Ebene interessant ist und dem Programmierer verborgen bleibt? Hab aber keine Ahnung...
c) is_big_endian: (kein plan ob das geht...)
movb $1, %al
andw $1, %ax
ret //ergebnis steht in %eax
Aufgabe 3:
a) 01111111 11111111 11111111 11111111 = 0x7f ff ff ff
Bedeutung? Keine Ahnung, vielleicht die max. darstellbare signed int Zahl?
b) movl 4(%esp), %eax
andl $1, %eax
ret
c) int test(int n) {
int i = 0;
loop: int tmp = n;
tmp = tmp * tmp;
if (i = tmp) return -1;
tmp = i;
tmp = tmp * tmp;
tmp = tmp + n;
tmp = func(tmp);
if (tmp= 1)
return i
else
i = i+1;
goto loop;
}
(Keine Ahnung, ob es das ist was die wollen...)
Aufgabe 4:
a)
.align 4
isqrt: .globl isqrt
movl 4(%esp), %ecx <=
xorl %edx, %edx
cmpl %ecx, %edx
jae .L4
.align 4
.L5:
incl %edx <=
movl %edx, %eax
imull %eax, %eax
cmpl %ecx, %eax <=
jb .L5
.L4: movl %edx, %eax <=
ret
b) vielleicht so eine Art Code Alignment? zB das .L5 an einer durch vier teilbaren Stelle steht, weil da immer wieder hingesprungen werden muss?
c) Speicherbedarf: 34? Aber wie immer, hab keine Ahnung, im Skript steht da ja nicht sonderlich viel dazu, vielleicht kann mir das ja mal jmd. erklären...
d) keine ahnung, vielleicht hat der Programmierer vergessen, dass er auch call benutzen könnte... Was bedeutet überhaupt ".word"?
Aufgabe 5)
addierer mit einer festverlöteten 1 :-)