Obligatorisk oppgave nr 3 i INF2270 våren 2013

Frist

Fristen er satt til: mandag 6. mai 2013 kl 10.00. Oppgaven skal leveres via Devilry.

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;

	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 http://www.uio.no/studier/admin/obligatoriske-aktiviteter/mn-ifi-oblig.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 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!

12. februar 2013
Dag Langmyhr