For Emacs: -*- coding: utf-8 -*- Obligatorisk oppgave 2 2017 Et tidspunkt p? d?gnet kan angis enten p? en klokke med timer, minutter og sekunder (for eksempel 1:00:05, som er 5 sekunder etter klokken 1 om natten) eller bare som antall sekunder siden midnatt (for eksempel 3605, som er samme klokkeslett). Vi skal lage funksjoner som kan konvertere mellom de to formene; n?rmere bestemt skal vi lage: 1. Funksjonen hms_to_sec skal regne om fra et klokkeslett med timer-minutter-sekunder til antall sekunder siden midnatt. Funksjonen har tre parametre: timene i klokkeslettet(i %RDI), minuttene i klokkeslettet (i %RSI) og sekundene i klokkeslettet (i %RDX). Svaret skal alts? v?re antall sekunder siden midnatt (i %RAX). Eksempel: hms_to_sec(0,1,5) skal gi svaret 65. 2. Funksjonen sec_to_h skal regne om fra et gitt antall sekunder siden midnatt til et klokkeslett og s? returnere timene i dette klokkeslettet. Funksjonenen har ¨Śn parameter: sekundene siden midnatt. Svaret (i %RAX) skal alltid v?re 0-23. Eksempel: sec_to_h(65) skal gi svaret 0 siden sekundtallet 65 angir klokkeslettet 0:1:05. 3. Funksjonen sec_to_m skal regne om fra et gitt antall sekunder etter midnatt til et klokkeslett og s? returnere minuttene i dette klokkeslettet; svaret skal alltid v?re i intervallet 0-59. Eksempel: sec_to_m(3750) skal gi svaret 2 siden sekundtallet 3750 angir klokkeslettet 1:02:30. Hint. I denne funksjonen m? vi dele p? 60 to ganger for ? finne svaret. 4. Funksjonen sec_to_s skal regne om fra et gitt antall sekunder etter midnatt til et klokkeslett og s? returnere sekundene i dette klokkeslettet; svaret skal alltid ligge i intervallet 0-59. Eksempel: sec_to_s(36002) skal gi svaret 2 siden sekundtallet 36002 angir klokkeslettet 10:00:02. L?sningen Denne oppgaven skal l?ses p? Ifis Linux-maskiner. I mappen /ifi/bifrost/project5/in1020/oblig-2 ligger det to filer: sec.s med assemblerkode og et testprogram test-sec.c. Kopier disse to filene til din egen mappe og legg inn kode i filen sec.s. Du kan kj?re koden med de to kommandoene $ gcc -o test-sec test-sec.c sec.s $ ./test-sec N?r koden din er riktig, skal dette testprogrammet skrive ut 12 ==> 00:00:12 ==> 12 65 ==> 00:01:05 ==> 65 3600 ==> 01:00:00 ==> 3600 3750 ==> 01:02:30 ==> 3750 36002 ==> 10:00:02 ==> 36002 (Det viser et tidspunkt f?rst som sekunder siden midnatt, s? som et klokkeslett og til sist som antall sekunder igjen.)