INF1070 Oppgaver uke 15 (11.-15.4.2005) Oppgave 1 Vi skal jobbe med farger der fargen lagres som et 32-bits ord med de tre komponentene R (for ?red?), G (for ?green?) og B (for ?blue?) som hver ligger i intervallet 0-511 og lagres i 9 bit. En farge ser alts? slik ut: 3 22 11 00 0 1 76 87 98 0 +-------------------------------+ | | R | G | B | +-------------------------------+ Skriv f?lgende funksjoner i b?de C og x86-assemblerspr?k: typedef unsigned int uint; uint colval (uint r, uint g, uint b) uint rval (uint c) uint gval (uint c) uint bval (uint c) `colval? setter sammen en farge utifra de tre komponentene mens de tre andre plukker ut en spesiell komponent; alle tre skal da gi en verdi 0-511. Oppgave 2 Uke 10 var oppgave 2 ? skrive standardfunksjonen `rindex?. Skriv den n? p? nytt i x86-kode ved ? bruke `scasb? to ganger: f?rst til ? finne slutten p? teksten og deretter til ? lete bakover etter tegnet. Oppgave 3 Hvilken av de to versjonene av `rindex? er raskest, den fra uke 10 eller den fra denne ukens oppgaver? Skriv et testprogram som bruker `tid?-pakken fra forelesningen 4.4 og sjekker tidsforbruket n?r tegnet det letes etter er i ulike posisjoner i en lang tekst.