Lösningsförslag till tentamen i Datorteknik 2011-05-28



Relevanta dokument
Lösningsförslag till tentamen i IS1500 Datorteknik

Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl

Lathund, procent med bråk, åk 8

Administration Excelimport

Snabbslumpade uppgifter från flera moment.

CE_O1. Nios II. Enkla assembler-instruktioner.

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Datorövning 2 Statistik med Excel (Office 2007, svenska)

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Du ska nu skapa ett litet program som skriver ut Hello World.

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

CE_O5. Cacheminne. Hemlaboration 2.

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Praktisk programmering

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

Manual för BPSD registret. Version 6 /

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Skriva B gammalt nationellt prov

Utveckla arbetsmiljö och verksamhet genom samverkan

CE_O2. Nios II. Subrutiner med mera.

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Arbeta bäst där du är Dialect Unified Mi

Vi skall skriva uppsats

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Ha det kul med att förmedla och utveckla ett knepigt område!

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Tentamen i Programmering grundkurs och Programmering C

TIMREDOVISNINGSSYSTEM

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

Vad är WordPress? Medlemmar

Rallylydnad Nybörjarklass

Texturbild. Lagerpaletten du kommer arbeta med ser du till höger. 1. Kopiera bakgrunden till ett nytt lager och gör den svartvit.

Hur du arbetar med VFU-portfölj i Mondo. en lathund för student

Hävarmen. Peter Kock

Enkätresultat för elever i år 2 i Nösnäsgymnasiet 2 i Stenungsund våren 2014

Visma Proceedo. Beställa IT-produkter - beställare. Version 2.0 /

Idag: Dataabstraktion

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Kom-igång VictorReader Stratus 4 H som taltidningsspelare Ver

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

ELEV- HANDLEDNING (Ansökan via webben)

Hemsida Arbetsrum. Skapa arbetsrumslista

Manual HSB Webb brf

Manual Milestone 112. Iris Hjälpmedel AB Juni 2011 Ver: 1.01

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Virkade tofflor. Storlek & By: Pratamedrut. pratamedrut.se/blog/virkade tofflor 1

ANVÄNDARHANDLEDNING FÖR

MANUAL TILL AVTALSMALL FÖR KIST- OCH URNTRANSPORTER

Sammanfattning på lättläst svenska

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

TIMREDOVISNINGSSYSTEM

Datorsystem Laboration 2: Minnesmappade bussar

Webb-bidrag. Sök bidrag på webben Gäller från

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

F2 Datarepresentation talbaser, dataformat och teckenkodning

Lathund för överföring av rapporter och ljudfiler

Tentamen i matematisk statistik (9MA241/9MA341/LIMAB6, STN2) kl 08-13

Manual för Min sida 1/ rev

Dina inloggningsuppgifter är samma som du använder för att logga in på skolans datorer.

Kom-igång VictorReader Stratus 4 H som taltidningsspelare

Konsult- och servicekontoret Ekonomi & Finans Användarmanual Economa Faktura

Manual för. elektronisk fakturahantering AGRESSO EFH

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Föreningen Nordens lokala hemsidor

Föreläsning 5: Rekursion

En bioinformatorisk genjakt!

Programmera en NXT Robot

Adobe Acrobat Connect Pro. E-möte. Studenthandledning

OPTIMIZING THE LINE. CAB Group AB Stortorget 11, SE Örebro, Sweden Phone:

FORTNOX SMÅFÖRETAGENS BÄSTA VÄN. Fortnox kom igång guide Praktisk bokföring. En guide för dig som vill komma igång med bokföring i Fortnox

Projekt benböj på olika belastningar med olika lång vila

Laganmälan & Laghantering

Statsbidrag för läxhjälp till huvudmän 2016

MANUAL För externa leverantörer Projektportal Investera

5-växlad manuell direktväxlad växellåda 085 DS: Grundinställning

Väga paket och jämföra priser

BRUK. bedömning reflektion utveckling kvalitet

Träning i bevisföring

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Sektionen för Beteendemedicinsk smärtbehandling

Facit med lösningsförslag kommer att anslås på vår hemsida Du kan dessutom få dem via e-post, se nedan.

När jag har arbetat klart med det här området ska jag:

PROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Välkommen till ikanobank.se

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

x 2 + px = ( x + p 2 x 2 2x = ( x + 2

Manual Ledningskollen i mobilen

ÖSS jolles Seglarsaga

Avgifter i skolan. Informationsblad

Flera nyanser av diskriminering

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

Lathund Hur man arbetar med NOAK i Auricula

Utbildningsplan för arrangörer

Transkript:

Lösningsförslag till tentamen i Datorteknik 2011-05-28 Varning: dessa lösningsförslag kan vara felakktiga och/eller ofullstän Uppgift 1. Maskinaritmetik a) Flyttalet X lagras som 1 1000 0110 000 1100 0000 0000 0000 0000. Första ettan betyder att talet är negativt. Därefter kommer 1000 0110 som kodar exponenten. Sist kommer mantissabitar, förutom "1,": 000 1100 0000 0000 0000 0000. "1," ska läggas till i början, så att mantissan blir: 1,000 1100 0000 0000 0000 0000 Låt oss titta på exponentkoden som vanligt binärtal en stund: 1000 0110. Första ettan har vikten 128, hela exponentkoden är 128+4+2 = 134 = 128 + 6 = 127 + 7. Exponenten lagras i excess-127-kod, så exponentkoden är 127 "för mycket". Eftersom exponentkoden (sedd som vanligt binärtal) är 127 + 7 så är exponenten = 7. Talet X = -1,00011000...0 gånger 2^7 Flytta kommat 7 steg åt höger så att vi får bort exponenten: X = -10001100,0...0 gånger 2^0 Talet -10001100 = -( 128 + 8 + 4 ) = -( 128 + 12 ) = -140. Svar: -140 b) X/4 = X/( 2^2 ) vilket betyder att exponenten ska minskas med 2 så är det klart sen. Svar: X/4 lagras som 1 1000 0100 000 1100 0000 0000 0000 0000. c) Y = 12,75 = 1100,1100 binärt = 1100,1100 gånger 2^0. Flytta kommat 3 steg åt vänster så att mantissan börjar med "1," och justera samtidigt exponenten så att det fortfarande är samma tal: Y = 1,1001100 gånger 2^3. Talet är positivt så teckenbiten = 0. Exponenten 3 ska lagras som binärtalet 127 + 3 = 128 + 2 = 1000 0010 binärt. Svar: Y lagras som 0 1000 0010 100 1100 0000 0000 0000 0000. d) +140 = 128 + 8 + 4 = 1000 1100 binärt. Med 12 bitar: 0000 1000 1100. För att få -140 i 2-komplementsrepresentation, invertera alla bitar och addera sedan 1 i minst signifikanta positionen: Steg 1, invertera: 0000 1000 1100 blir 1111 0111 0011. Steg 2, addera 1: 1111 0111 0011 + 1 blir 1111 0111 0100. Svar: +140 = 0000 1000 1100, -140 = 1111 0111 0100. e) K lagras som 0 0000 0000 010 0000 0000 0000 0000 0000. Exponentkoden 0000 0000 innebär att exponenten är 126, och att mantissan börjar med "0," i stället för "1,". Alltså är K = 0,0100...0 gånger 2^-126. Flytta kommat så att talet börjar med "1," så blir det lättare att räkna: K = 1,00...0 gånger 2^-128. Svar: K = 2^-128. Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 1

Uppgift 2. Assemblerprogrammering för Nios II a) CountCodesInReg: andi r5,r5,0xff # ignorera oönskade bitar i r5 andi r8,r4,0xff # maska fram 1 byte av indata cmpeq r2,r8,r5 # undersök om den stämmer med r5 slri r8,r4,8 # skifta fram byte 1 andi r8,r8,0xff # maska bort övriga bitar cmpeq r8,r8,r5 # undersök om byte 1 stämmer med r5 add r2,r2,r8 # addera resultatet till summan slri r8,r4,16 # skifta fram byte 2 andi r8,r8,0xff # maska bort övriga bitar cmpeq r8,r8,r5 # undersök om byte 2 stämmer med r5 add r2,r2,r8 # addera resultatet till summan slri r8,r4,24 # skifta fram byte 3 # här behövs ingen andi, slri har skiftat in 24 nollor cmpeq r8,r8,r5 # undersök om byte 3 stämmer med r5 add r2,r2,r8 # addera resultatet till summan ret # klart, gör returhopp b) CountCodesInMemory: PUSH ra # pusha r31, vi ska göra en call lw r4,0(r4) # hämta heltalet # parametern i r5 finns redan på rätt plats call CountCodesInReg # anropa funktionen som gör jobbet # resultatet finns redan i r2 där det ska vara POP ra # poppa r31 ret # klart, gör returhopp Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 2

c) CountCodesInVector: PUSH ra # pusha r31, vi ska göra call # pusha register för våra långlivade lokala variabler PUSH r16 # plats för vår adress (r4) PUSH r17 # plats för vår jämförelsebyte (r5) PUSH r18 # plats för antal ord i vektorn (r6) PUSH r19 # plats för summan (vårt returvärde) # kopiera långlivade lokala variabler mov r16,r4 mov r17,r5 mov r18,r6 mov r19,r0 # initialisera summan till noll vectorcountloop: ble r18,r0,donethemall # kolla om det är klart nu # kopiera lokala variabler till parameterregister mov r4,r16 mov r5,r17 call CountCodesInMemory # anropa add r19,r19,r2 # uppdatera totalsumman addi r16,r16,4 # uppdatera ordpekare subi r18,r18,1 # uppdatera antalet kvarvarande ord # gör en ny koll och kanske ett nytt varv i loopen br vectorcountloop donethemall: mov r2,r19 # kopiera totalsumman till returvärde # poppa alla register vi har pushat # omvänd ordning när man poppar, annars blir det tokigt POP r19 POP r18 POP r17 POP r16 POP ra ret # klart, gör returhopp Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 3

Uppgift 3. In- och utmatning och avbrott a) WaitForTimeOut: movi r2,-1 # lägg rätt returvärde i r2 ldwio r8,0(r4) # läs status-registret andi r8,r8,1 # maska fram bit 0 längst till höger beq r8,r0,waitfortimeout # om noll, kolla igen stwio r0,0(r4) # skriv till status-registret ret # klart, gör returhopp b) CheckForTimeOut: ldwio r2,0(r4) # läs status-registret andi r2,r2,1 # maska fram bit 0 längst till höger beq r2,r0,klart # om noll så är vi klara, med 0 i r2 stwio r0,0(r4) # annars, skriv till status-registret movi r2,-1 # och lägg -1 i r2 klart: ret # gör returhopp c) DoTimeout: # vår inledande koll kräver bara ett register PUSH r8 movia r8,0x920 # lägg adress till timern i r8 stw r0,0(r8) # skriv till status-registret movia r8,tickcount # adress till variabel ldw et,0(r8) # hämta variabelvärdet till r24 subi et,et,1 # räkna ner variabelvärdet stw et,0(r8) # skriv uppdaterat värde POP r8 # poppa r8 innan villkorshopp # om TickCount > 0 så är vi helt klara nu bgt et,r0,endoftimeout # men annars så ska vi anropa EndOfSlice PUSHALL # pusha allt innan subrutinanrop movia r8,tickcount # förbered återställning movi r9,100 # startvärde till r9 stw r9,0(r8) # skriv startvärde till TickCount call EndOfSlice # anropa EndOfSlice, vad den nu gör POPALL endoftimeout: eret # återställ allt igen # returhopp direkt till det avbrutna programmet Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 4

Uppgift 4. Cacheminnen a) Instruktionshämtningarna har ingen tidslokalitet alls eftersom ingen av raderna körs mer än en gång. har rumslokalitet: varje instruktionshämtning efterföljs av en ny instruktionshämtning på en näraliggande adress, närmare bestämt ordet precis efter senaste hämtningen. b) Datareferenserna har viss tidslokalitet eftersom 0x803c00 refereras tre gånger. De har också viss rumslokalitet eftersom några olika ord nära 0x803c00 refereras. Varken tids- eller rumslokaliteten är särskilt stor, men litegrann finns det av båda två. c) Cacheminnet har följande adressuppdelning och utseende. 24 tag 3 index 5 byte offset rad 1 movia r8, 0x803c00 # påverkar inte datacacheminnet rad 2 ldw r12,0(r8) # miss, läs adress 0x803c00-0x803c1f till översta raden rad 3 ldw r13,60(r8) # miss, läs 0x803c20-0x803c3f till näst översta raden rad 4 stw r14,0(r8) # träff på översta raden rad 5 ldw r15,32(r8) # träff på näst översta raden rad 6 ldw r16,256(r8) # miss, läs adress 0x803d00-0x803d1f till översta raden rad 7 stw r17,0(r8) # miss, översta raden innehåller nu något annat, läs 0x803c00-0x803c1f igen rad 8 ldw r18,48(r8) # träff på näst översta raden d) Cacheminnet har följande adressuppdelning och utseende. 24 tag 2 index 6 byte offset rad 1 movia r8, 0x803c00 # påverkar inte datacacheminnet rad 2 ldw r12,0(r8) # miss, läs adress 0x803c00-0x803c3f till översta raden rad 3 ldw r13,60(r8) # träff på översta raden rad 4 stw r14,0(r8) # träff på översta raden rad 5 ldw r15,32(r8) # träff på översta raden rad 6 ldw r16,256(r8) # miss, läs adress 0x803d00-0x803d1f till översta raden rad 7 stw r17,0(r8) # miss, översta raden innehåller nu något annat, läs 0x803c00-0x803c3f igen rad 8 ldw r18,48(r8) # träff på översta raden Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 5

e) Cacheminnet har följande adressuppdelning och utseende. 25 tag 1 index 6 byte offset rad 1 movia r8, 0x803c00 # påverkar inte datacacheminnet rad 2 ldw r12,0(r8) # miss, läs 0x803c00-0x803c3f till vänstra översta raden rad 3 ldw r13,60(r8) # träff på vänstra översta raden rad 4 stw r14,0(r8) # träff på vänstra översta raden rad 5 ldw r15,32(r8) # träff på vänstra översta raden rad 6 ldw r16,256(r8) # miss, läs 0x803d00-0x803d1f till högra översta raden rad 7 stw r17,0(r8) # träff på vänstra översta raden rad 8 ldw r18,48(r8) # träff på vänstra översta raden Uppgift 5. Processorkonstruktion a) NOP behövs så att det alltid finns 2 oberoende instruktioner mellan uppdatering och läsning av ett register: rad 1 CHKZ: movi r8, 0 # nollställ räknare Inga NOP här, det finns redan två oberoende mellan skrivning till r8 och nästa läsning rad 2 BAA: ldw r9, 0(r4) # hämta indata NOP NOP rad 3 bne r9, r0, FOBI # hoppa kanske Inga NOP här heller rad 4 addi r8, r8, 1 # uppdatera räknare Inga NOP här heller rad 5 FOBI: ldw r4, 4(r4) # uppdatera pekare NOP NOP rad 6 bne r4, r0, BAA # hopp om fler indata Inga NOP behövs här rad 7 mov r2, r8 # låt räknare vara returvärde Inga NOP behövs här rad 8 ret # returhopp Inga NOP behövs efter sista instruktionen rad 9 FUN: movi r2,0 # tillhör annan subrutin FUN b) Delayed branch medför att NOP behövs efter varje branch eller annan hoppinstruktion. Kanske kan man ta bort NOP, om programmets resultat blir detsamma oavsett om instruktionen efter hoppinstruktionen utförs oavsett om hoppet tas eller inte. Eftersom det är en femstegspipeline har vi load delay vilket innebär krav på en NOP eller en oberoende instruktion mellan en LOAD och en USE. Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 6

rad 1 CHKZ: movi r8, 0 # nollställ räknare rad 2 BAA: ldw r9, 0(r4) # hämta indata NOP # nödvändig på grund av load delay rad 3 bne r9, r0, FOBI # hoppa kanske NOP # nödvändig, annars ökas r8 oavsett vad indata hade för värde rad 4 addi r8, r8, 1 # uppdatera räknare rad 5 FOBI: ldw r4, 4(r4) # uppdatera pekare NOP # nödvändig på grund av load delay rad 6 bne r4, r0, BAA # hopp om fler indata # ingen NOP behövs här, r2 kan skrivas varje loopvarv utan problem rad 7 mov r2, r8 # låt räknare vara returvärde rad 8 ret # returhopp NOP # nödvändig, annars skrivs r2 över vid returhoppet rad 9 FUN: movi r2,0 # tillhör annan subrutin FUN c) Med fyrstegspipeline kan processorn inte göra adressberäkning och minnesläsning i samma instruktion, det vill säga ldw rx,y(rx) går bara att utföra om y = 0. Samma sak gäller stw. Dessutom: Det ska vara samma NOP-ar pga hopp som i uppgift b) (Rättelse - tillägg) rad 1 CHKZ: movi r8, 0 # nollställ räknare rad 2 BAA: ldw r9, 0(r4) # hämta indata # inga problem, load med offset noll rad 3 bne r9, r0, FOBI # hoppa kanske rad 4 addi r8, r8, 1 # uppdatera räknare rad 5 FOBI: # här behövs ändring för fyrstegspipeline addi r11,r4,4 # beräkna adress ldw r4,0(r11) # uppdatera pekare rad 6 bne r4, r0, BAA # hopp om fler indata rad 7 mov r2, r8 # låt räknare vara returvärde rad 8 ret # returhopp rad 9 FUN: movi r2,0 # tillhör annan subrutin FUN d) Vi räknar instruktioner och klockcykler: Programrad nr Antal utförda instruktioner hittills Antal klockcykler hittills Kommentar 1 1 1 2 2 2 3 3 3 detta hopp tas inte 4 4 4 5 5 5 6 6 7 loophoppet tas 2 7 8 andra varvet börjar 3 8 9 detta hopp tas inte 4 9 10 5 10 11 6 11 13 loophoppet tas igen 2 12 14 tredje varvet börjar 3 13 15 detta hopp tas inte 4 14 16 5 15 17 6 16 18 sista varvet, loophoppet tas inte 7 17 19 8 18 21 ret är en hoppinstruktion Svar: CPI, Clock-cycles Per Instruction = 21/18 = 7/6 = 1,14 Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 7

Uppgift 6. Trådar och synkronisering a) Vi ser vad som händer under varje time-slice: 1.P1 beräknar 10 tal och lägger i kö, sedan 1 tal till som inte går att lägga i kön för den är full. Sedan väntar P1 9/20 time-slice. 2.P2 beräknar 1 tal men kön är full. Sedan väntar P2 19/20 time-slice. 3.C3 konsumerar 10 tal, sedan är kön tom och C3 väntar 30/40 = 15/20 time-slice. 4.C4 kommer till en tom kö och väntar 20/20 time-slice. 5.P1 lägger sitt färdiga tal i kön, producerar sedan 9 tal till och lägger i kön. Sedan producerar P1 ett 10:e tal som inte går att lägga i kön för nu är den full igen. P1 väntar denna gång 10/20 time-slice. 6.P2 kan inte lägga sitt tal i kön nu heller och väntar 20/20 time-slice. 7.C3 konsumerar 10 tal och väntar sedan 15/20 time-slice. 8.C4 kommer till tom kö och väntar 20/20 time-slice. Summering: 20 tal från P1 har konsumerats, och inga tal alls från P2. b) Med yield i Wait försvinner väntetiderna. Totaltiden i deluppgift a) var 8 hela time-slices, eller räknat i tjugondelar: 160/20 time-slices. Av dessa 160/20 time-slices så väntade P1 9/20 + 10/20, P2 väntade 19/20 + 20/20, C3 väntade 15/20 + 15/20, och C4 väntade 20/20 + 20/20. Total väntetid i deluppgift a) var alltså (9+10+19+20+15+15+20+20)/20 = 128/20. Det nyttiga arbetet går alltså på (160 128)/20 = 32/20 time-slices i deluppgift a). I deluppgift b) försvinner all väntetid och totaltiden blir 32/20 time-slices = 1,6 time-slice. Svar: Nya körtiden = 1,6 / 8 = 0,2 vilket kan skrivas som 20%. c) Programkoden som utför Signal måste kopiera semafor-variabeln från minnet till ett register, öka värdet i registret med 1, och sedan skriva tillbaka det nya värdet till minnet. Skulle någon annan tråd få ändra semafor-variabeln medan programkoden för Signal har en kopia i ett register, så kommer den andra trådens ändring att tappas bort när Signal skriver tillbaka sitt uppdaterade värde. Detta kan medföra att systemet tappar bort en "boll" för alltid. d) 1. Sant. Register r8 får användas av all programkod. Varje tråd har sina egna tillfälliga värden i r8, som därför måste sparas och återställas för att tråden ska kunna fortsätta där den var. 2. Falskt. Fifo-kön är en delad datastruktur i minnet. Det finns bara en Fifo-kö, och alla trådar delar på den. Därför ska den inte sparas/återställas vid trådbyte. 3. Sant. Varje tråd har sin egen stackpekare, som alltså måste sparas och återställas vid trådbyte. 4. Falskt. Timer-kretsen används för att ge klockavbrott till systemet. Trådarna får inte ändra innehållet i timer-kretsens register och därför behöver de innehållen inte sparas och återställas vid trådbyte. e) Låt oss räkna efter. Cirka 30 registerinnehåll ska sparas vilket kräver 30 store-instruktioner. Ny tråd ska väljas ut, sedan behövs 30 load-instruktioner för att återställa 30 registerinnehåll. Summan blir mer än 50 instruktioner, men inte så mycket som 500. Svar: minst 50. Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 8

Rättelselogga 12-dec-2012 Uppgift 5c) Tillägg om NOP:ar pga hopp /JWd Lösningsförslag (version 2) Datorteknik 2011-05-28 sida 9