29.08.2013 Views

Övning1 Datorteknik vt12

Övning1 Datorteknik vt12

Övning1 Datorteknik vt12

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Övning1</strong> <strong>Datorteknik</strong>, HH <strong>vt12</strong> - Talsystem, logik,<br />

minne, instruktioner, assembler<br />

Talsystem<br />

Talsystem -­‐ binära tal<br />

F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får<br />

dessa tal?<br />

F1.2. Anta det är 400 personer i en klass. Varje person ska få ett unikt bitmönster. Hur<br />

många bitar går det åt?<br />

Talsystem-­‐ 2-­‐komplement<br />

F1.3. Skriv talen 7 och -­‐7 i 4-­‐bitars 2-­‐komplemnt form<br />

F1.4. Vilket är största positiva tal men kan representera med 8-­‐bitar 2-­‐komplement?<br />

Vilket är det mest negativa?<br />

F1.5. Omvandla följande 2-­‐komplementtal<br />

a) 1010<br />

b) 01011010<br />

c) 11111110<br />

d) 0011100111010011<br />

F1.6. Omvandla följande decimaltal till 8-­‐bitars 2-­‐komplenttal<br />

a) 102<br />

b) 64<br />

c) 44<br />

d) –128<br />

e) 127<br />

F1.7. Omvandla följande 2-­‐komplenttal till 8-­‐bitars 2-­‐komplenttal utan att förändra<br />

deras värden<br />

a) 1010<br />

b) 011001<br />

c) 1111111000<br />

d) 01<br />

F1.8. Ange hexadecimala representationen av följande binära tal: 100100100111111<br />

F1.9. Anta ett tal består av n bitar. Vilket är största resp. minsta tal som går att<br />

representera om datatypen är<br />

a) Unsigned integer<br />

b) Signed integer (2-­‐komplement)


Talsystem -­‐ Binär aritmetik. Flaggor<br />

F1.10. Addera följande binära tal. Låt svaret vara binärt<br />

a) 1011 + 0001<br />

b) 0000 + 1010<br />

c) 1100 + 0011<br />

d) 0101 + 0110<br />

e) 1111 + 0001<br />

F1.11. Vilken matematisk åtgärd motsvaras av att skifta ett binärt tal ett steg åt vänster?<br />

F1.12. Addera följande 2-­‐komplenttal<br />

a) 01 + 1011<br />

b) 11 +01010101<br />

c) 0101+110<br />

d) 01 + 10<br />

F1.13. Visa vad följande flaggor sätts till efter nedanstående beräkningar. Motivera<br />

varför! Anta 4-­‐bitars tal<br />

l N (Negative) l Z (Zero) l O (Overflow) l C (Carry) l<br />

a) 1101 + 1000<br />

b) 0110 + 0101<br />

c) 0111 + 1001<br />

d) 0110 + 1001<br />

Talsystem -­‐ Flyttal<br />

F1.14. Vad är decimala representationen av följande flyttal (för beskrivning av flyttal, se<br />

uppgift F1.15)?<br />

0100 000110111101 0100 0000 0000 0000<br />

F1.15 Representera följande tal som binärt i 32 bitars flyttal. 2.150<br />

32-­‐bitars flyttal lagras enligt nedan:<br />

31 30 23 22 0<br />

s<br />

exponent<br />

mantissa<br />

Grundprincip: N = –1 s x 1.M*2 E–127. 0


Minne<br />

Minne -­‐ Grunder<br />

F2.17. Vad menas mer exakt när man säger att minne är på 32kB stort och är på 16 bitar.<br />

F2.18. Hur många adresspinnar finns det på ett 64kB parallellt (data läses ut parallellt)<br />

minne? (anta 8-­‐ bitar)<br />

F2.19. Förklara principiellt hur ett ''vanligt" halvledarminne är uppbyggt. Dvs hur man<br />

kan nå olika positioner i minnet.<br />

F2.20. Om en dator har 16-­‐bitars databuss och en adressbuss på 32 bitar, hur stort<br />

minne kan då datorn ha? Ange svaret i byte med lämpligt prefix. (kilo= 1024)<br />

F2.21. Du har köpt en minneskapsel med 4 ben märkt d0-­‐d3 och 14 adresspinnar. Vad är<br />

minnets ordlängd, adressrymd samt totala storlek uttryckt i kB?<br />

Minne-­‐ Minnestyper<br />

F2.22. Förklara följande olika minnestyper<br />

• RAM<br />

• ROM<br />

• SRAM<br />

• DRAM<br />

• EPROM<br />

• EEPROM<br />

• FLASH<br />

F2.23. Nämn en fördel/Nackdel med SRAM framför DRAM.<br />

F2.24. Förklara hur en skrivning går till från minnet. Ange speciellt vad som sker på de<br />

olika bussarna.<br />

Datormodell<br />

F2.1. Hur ser Von Neumann modellen för en dator ut?'<br />

F2.2. Beskriv hur CPU:n kommunicerar med minnet samt vilka register som används<br />

F2.3. Hur avgör man i von Neumann modellen av en dator om innehållet i en minnescell<br />

är en instruktion eller ett tal?<br />

F2.4. Vad styrenhetens uppgift i en processor?


Instruktionsbegreppet<br />

F2.6. Om vi har en ISA med 27 opcoder och 16 register och låt oss anta en 32-­‐bitars<br />

instruktion, men följande format:<br />

där SR= Source Register (varifrån man läser), DR=Destination Register. (där svaret<br />

hamnar).<br />

Ex) ADD R2,R1,#2 ; R2 =DR, R1=SR, #2 är IMMediatevärdet<br />

Vilket är största resp. minsta värde som immeditate-­‐värdet (lMM) kan ha, Anta att lMM<br />

är i tvåkomplements form?<br />

F2.7. Nämn tre platser en instruktions operand kan befinna sig på!<br />

Instruktionscykel<br />

F2.8. Förklara vad som händer på de olika stegen i instruktionscykeln då man utför<br />

kommandona<br />

a) LDR R5,[R6,#5]<br />

b) SUB R1, R2, R4<br />

c) B TEST<br />

Instruktionscykeln<br />

1. FETCH<br />

2. DECODE<br />

3. EVALUATE ADRESS<br />

4. FETCH<br />

5. OPERANDS EXECUTE<br />

6. WRITE BACK<br />

F2.9. Vad är adresseringsmode hos en processor?<br />

F2.10. Förklara följande olika adresseringsmode<br />

a) lmmediate<br />

b) Direct<br />

c) Base+lndex<br />

d) Register<br />

F2.11. Vilka adresseringsmode används i följande fall<br />

a) Addition av innehåll i två register. Lägg i ett tredje<br />

b) Inläsning från en minnesposition<br />

c) R3 innehåller adress till början på en tabell. Vill läsa tredje talet från toppen av<br />

tabellen.<br />

d) Addera talet 5 till R1 och lägg svaret i R2


F2.12. Ge exempel på assemblerinstruktioner som nyttjar följande adresseringsmode<br />

a) lmmediate<br />

b) Direct<br />

c) Base+lndex<br />

d) Auto+index<br />

e) Register<br />

Assembler<br />

F3.13. Vad är skillnaden mellan ett assemblerdirektiv och en instruktion? Ge exempel på<br />

en av varje!<br />

F3.14. Vad innebär 2-­‐passassemblering?<br />

F3.15. Vad är en label?<br />

F3.16. Vad är en symboltabell?<br />

Programmering<br />

F3.P1 Skriv ett program som jämför vilket tal som är störst av det i R1 eller R2. Det tal<br />

som är störst ska hamna i R3<br />

a) Anta talen är unsigned<br />

b) Anta talen är tvåkomplement<br />

F3.P2. Skriv ett program som laddar in tal från adressen som ligger på platsen ADRESS<br />

och lägger på platsen DEST. Placera två tal på dessa adresser med lämpliga<br />

assemblerdirektiv.<br />

F3.P3. Skriv program som läser in vartannat 8-­‐bitars tal från adresser som antas finnas i<br />

R3 och framåt. Talen ska summeras upp i R4. Då talet 0 upptäcks ska additionen<br />

avbrytas.<br />

F3.P4. Gör ett program som skriver talet 43 till den fördefinierade adressen PORTO.<br />

Anta man skriver 1 byte.<br />

F3.P5. Gör ett program som läser från den fördefinierade adressen PORTO. Anta man<br />

läser 1 byte. Om bit 3 är 1 skriv talet 0 till PORTO, annars talet 0xFF<br />

Tips: Tänk på vad man får som svar om man AND:ar med ett bitmönster med en etta på position 3.<br />

F3.P6. Gör ett program som plockar ut de 4 översta bitarna i R1 och lägger i R2.<br />

Tips: Tänk på vad som händer när man AND:ar med ett bitmönster med ettor på intressanta positioner.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!