Instructie Programmeren Task 3 5JJ70 Task 3.1: MIPS Rating # loops# instructions per loop MIPS 1.000.000# sec • Volg de beschrijving in de opdracht om het aantal assembly instructies in de loop uit te vinden • Druk op “Step over” (F10) tot je het circulerend gedrag van je loop ziet en tel de instructies • Let op de getallen die je in je variabelen op wilt slaan: past het wel? • Let ook op de precisie van het type variabele dat je gebruikt! • Hoe werken floats en doubles? Kan je er alle getallen mee weergeven? PAGE 2 Task 3.1: MIPS Rating • Disassembly weergeven PAGE 3 Task 3.1: MIPS Rating – Tijd meting opties • Vrijwel altijd operating system afhankelijk! 1. De GetTickCount() functie uit windows.h 1. Geeft een getal terug dat het aantal milliseconden sinds de pc opstartte weergeeft 1. De time() functie uit time.h (zowel windows als unix) 1. Geeft een getal terug dat het aantal seconden sinds 1 januari 1970 weergeeft (ookwel unixtime genoemd) 2. Natuurlijk zijn er meer opties, sommigen zijn lastiger dan anderen (GetSystemTime() is bijv. lastig!) PAGE 4 Task 3.1: MIPS Rating – Tijd meting opties • GetTickCount(): http://msdn.microsoft.com/en-us/library/ms724408.aspx • time(): http://msdn.microsoft.com/en-us/library/1f4c8f33(VS.80).aspx • Informatie over een groot gedeelte van de standaard c functies en de uitbreidingen door windows: • http://msdn.microsoft.com/en-us/library/default.aspx • Gebruik de zoek functie op de site, of gebruik Google met: • site:msdn.microsoft.com/en-us/library/ je_zoekterm PAGE 5 Task 3.2: VERVALT • Task 3.2 VERVALT! • Maar hieronder toch de uitleg: • Gebruik scanf(“%1d”, &bit); zonder spatie ditmaal (omdat de gehele input achter elkaar wordt ingegeven) • Iedere keer dat deze scanf wordt uitgevoerd, krijg je 1 digit binnen, je zult dus meerdere keren scanf moeten gebruiken • Het eerste bit is het sign bit, deze zul je op een speciale manier moeten behandelen • Bedenk dat: 2x = 1 << x; en x/2 = x >> 1; • Gebruik de pow() functie niet PAGE 6 Task 3.3 PAGE 7