--*- coding: utf-8; -*-- INF2270 Oppgaver uke 13 (28.3-1.4.2011) Oppgave 1 Skriv x86-funksjonen float x2 (float x) som dobler verdien x. Bruk flyt-tallsoperasjonene. Oppgave 2 (ukens n?tt) L?s en tilsvarende oppgave som oppgave 1 men uten ? bruke flyt-tallsoperasjoner. void x2 (float *px) Her skal flyt-tallet som px peker p?, dobles, men alts? uten ? bruke noen flyt-tallsoperasjoner. Hint. Tenk p? de ulike elementene i et flyt-tall. Hva endres n?r det skjer en dobling? Oppgave 3 Vi skal lagre 1 000 000 data som kan ha verdi 0 eller 1; da er det nok med ett bit per dataelement. For ? spare plass vil vi pakke data i en unsigned int-array: unsigned int data[31250]; /* 31250*32 = 1000000 */ Skriv disse to funksjonene i x86-assembler: void setdata(unsigned int a[], int ix, int v) int getdata(unsigned int a[], int ix) som henholdsvis lagrer og henter et dataelement. Husk at array-er overf?res ved ? sende startadressen. Hint. Instruksjonen 'adcl' er nesten som 'addl', men adderer ogs? C-flagget.