--*- coding: utf-8; -*-- INF2270 Oppgaver uke 16 (15.-19.4.2013) Oppgave 1 Skriv funksjonen int sumpar (int x, ...) i x86-assemblerspr?k. Funksjonen kan ha et vilk?rlig antall int-parametre og siste parameter er 0. (Ingen andre parametre er 0.) Returner summen av parametrene. Testprogrammet #include extern int sumpar (int x, ...); int main (void) { printf("%12d\n", sumpar(0)); printf("%12d\n", sumpar(2, 0)); printf("%12d\n", sumpar(2, -5, 0)); printf("%12d\n", sumpar(2, -5, 7, 0)); } skal skrive ut 0 2 -3 4 Oppgave 2 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]; /* 31 250*32 = 1 000 000 */ 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.