Obligatorisk oppgave nr 3 i INF2270 v?ren 2018

Frist

Fristen er satt til: torsdag 26. april 2018 kl 10.00.

Funksjonen sprintf

Standardfunksjonen sprintf i C fungerer som printf men resultatet havner i en tekstvariabel i stedet for ? bli skrevet ut. For eksempel vil
	char str[200];
	int  x = 4;

	sprintf(str, "Her er %d %s.", x, "siffer");
resultere i at str inneholder ?Her er 4 siffer.? (samt en 0-byte som avslutning). Les mer i man sprintf om hvorledes sprintf fungerer; ikke glem at sprintf ogs? returnerer en verdi.

Oppgaven er ? skrive funksjonen sprinter som er en forenklet utgave av sprintf. N?rmere bestemt kan vi anta f?lgende forenklinger:

Oppgaven

Oppgaven er ? skrive funksjonen sprinter i x86-assemblerspr?k. Den skal l?ses individuelt, s? vi forventer at alle innleverte l?sninger er forskjellige. Det er heller ikke lov ? bruke en kompilator til ? generere koden. Ytterligere regler finnes i /studier/eksamen/obligatoriske-aktiviteter/mn-ifi-obliger-retningslinjer.html som forutsettes lest av alle som skal levere obligatoriske oppgaver i INF2270.

Koden skal skrives slik at den kan assembleres med kommandoen gcc -m32 p? Ifis Linux-maskiner.

Legg vekt p? oversiktlig programmering og gode kommentarer! Gruppel?reren kan nekte ? rette besvarelsen hvis det er for vanskelig ? forst? hvorledes funksjonen virker.

Det er lov ? la sprinter kalle andre funksjoner, men da skal de ogs? skrives i x86-assemblerspr?k og legges ved.

Det finnes et testprogram test-sprinter.c som gruppel?rerne vil bruke under rettingen; det kan v?re lurt ? pr?ve det selv.

Er du i tvil om noe i oppgaven, s? sp?r gruppel?reren eller meg.

Hint

Lykke til!

31. januar 2018
Dag Langmyhr