Nachbesprechung Übung 5
Aufgabe 1
Ein Beispiel warum Guard-, Round- und Sticky-Bit nötig sind findet ihr hier.
-1.00101000000101111000101 *29 = -592.1838989257812 +1.11010011000000101011010 *2-1 = 0.9121299982071
align
-1.00101000000101111000101|000 *29
+0.00000000011101001100000|011 *29
add
-1.00100111101000101100100|101 *29
normalize
-1.00100111101000101100100|11 *29
round even
-1.00100111101000101100101 *29 = -591.2717895507812
Aufgabe 2
Die Datei formf.asm
global formf
section .data
two dq 2.0
three dq 3.0
four dq 4.0
eight dq 8.0
section .text
formf:
addsd xmm0, xmm1
subsd xmm2, xmm3
mulsd xmm0, xmm2
mulsd xmm4, [eight]
mulsd xmm5, [four]
divsd xmm6, [two]
divsd xmm7, [four]
addsd xmm4, xmm5
subsd xmm4, xmm6
addsd xmm4, xmm7
mulsd xmm0, xmm4
divsd xmm0, [three]
ret
mit formf.c
, ähnlich der für Integer aus dem Tutorium
#include <stdio.h>
#include <inttypes.h>
extern double formf(double a, double b, double c, double d, double e, \
double f, double g, double h);
int main(void)
{ printf("%lf\n", formf(1.1,2.1,2.1,1.1,1.1,1.1,10.1,12.1)); }
Vorbesprechung Übung 7
MIPS