For Emacs: -*- coding: utf-8 -*- IN1020 ?velsesoppgaver 15.-20.9.2017 Disse oppgavene skal l?ses p? Ifis Linux-maskiner. Hvis du sitter ved en datamaskin med Linux, logg inn. Hvis du sitter ved en Windows-maskin, kj?r Start -> All Programs -> IFI-Linux.xw32 s? skal du kunne logge inn p? en Linux-tjener. Alle filene nevnt i disse oppgavene ligger i mappen /ifi/bifrost/project5/in1020/uke-37. Du m? ta kopi av filene i din egen mappe f?r du kan bruke dem. Oppgave 1 Funksjonen nineteen.s og testprogrammet test-nineteen.c fra forelesningen ligger i mappen /ifi/bifrost/project5/in1020/uke-37/. Lag en kopi av filene hos deg selv (se copy-kommandoen for to uker siden), og kj?r test-programmet. Hint. Du skal utf?re kommandoene copy, gcc og ./nineteen. Oppgave 2 Basert p? de to filene fra forrige oppgave, lag filen seven.s med funksjonen seven som skal returnere verdien 7. Hint. Du finner testprogrammet test-seven.c i mappen /ifi/bifrost/project5/in1020/uke-37. Oppgave 3 Ta utgangspunkt i funksjonen doble nevnt p? forelesningen og lag en funksjon kalt neste som har ¨Śn parameter. Den skal finner det neste tallet, dvs parameteren pluss 1. Hint. I Python ville vi skrevet funksjonen slik: def neste(v): return v+1 Hint. Du finner testprogrammet test-neste.c i mappen /ifi/bifrost/project5/in1020/uke-37. Oppgave 4 Hva gj?r denne funksjonen? # def hva(a, b, c): ??? .globl hva hva: movq %rdi,%rax imulq $3,%rsi addq %rsi,%rax subq %rdx,%rax ret Hint. Koden til funksjonen finnes i /ifi/bifrost/project5/in1020/uke-37/hva.s, og i samme mappe finnes ogs? et testprogram. Oppgave 5 Skriv funksjonen mod10 med ¨Śn parameter; funksjonen skal returnere resten vi f?r n?r vi dividerer parameteren med 10. Hint. I /ifi/bifrost/project5/in1020/uke-37/test-mod10.c finnes et testprogram test-mod10.c for funksjonen: #include extern long mod10 (long v); int main (void) { long res = mod10(12); printf("mod10(12) = %d\n", res); res = mod10(1417); printf("mod10(1417) = %d\n", res); } Om vi kj?rer det n?r vi har skrevet funksjonen ferdig, f?r vi f?lgende utskrift: $ gcc -o test-mod10 test-mod10.c mod10.s $ ./test-mod10 mod10(12) = 2 mod10(1417) = 7