--*- coding: utf-8; -*-- INF2270 Oppgaver uke 17 (20.-24.4.2015) Oppgave 1 Skriv en x86-assemblerfunksjon som skriver ut teksten Hei, alle sammen. Selve utskriften skal skje ved ? kalle p? printf. Hint: Direktivet .string kan brukes til ? lagre en tekst (med 0-byte til slutt) i minnet: hei_txt: .string "Hei, alle sammen.\n" Oppgave 2 Skriv en x86-assemblerfunksjon som sjekker fortegnet p? en float-verdi: int floatsign(float a) Svaret skal v?re -1, 0 eller 1 avhengig av om parameteren er negatov, 0 eller positiv. Hint: Det er ikke n?dvendig ? bruke noen flyt-tallsoperasjoner. Oppgave 3 Skriv en tilsvarende funsjon for double-verdier: int doublesign(double a) Hint: Heller ikke her er det n?dvendig ? bruke noen flyt-tallsoperasjoner. Hint: En double lagres i 8 byte. P? stakken ligger de slik: +--+--+--+--+--+--+--+--+ |08|07|06|05|04|03|02|01| +--+--+--+--+--+--+--+--+ blir lagt slik p? stakken n?r den er parameter: : +..+..+..+..+ |08|07|06|05| +..+..+..+..+ |04|03|02|01| <--- %esp +..+..+..+..+ Oppgave 4 Skriv en funksjon void skrivtest(double d) som kaller p? doublesign for ? f? vite fortegnet p? d og s? skriver ut svaret som 2.718282 har fortegn 1. ved ? kalle p? printf.