Tutorium 7

Reading time ~1 minute

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

source

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