Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa tal? F1.2. Anta det är 400 personer i en klass. Varje person ska få ett unikt bitmönster. Hur många bitar går det åt? Talsystem - 2- komplement F1.3. Skriv talen 7 och - 7 i 4- bitars 2- komplemnt form F1.4. Vilket är största positiva tal men kan representera med 8- bitar 2- komplement? Vilket är det mest negativa? F1.5. Omvandla följande 2- komplementtal a) 1010 b) 01011010 c) 11111110 d) 0011100111010011 F1.6. Omvandla följande decimaltal till 8- bitars 2- komplenttal a) 102 b) 64 c) 44 d) 128 e) 127 F1.7. Omvandla följande 2- komplenttal till 8- bitars 2- komplenttal utan att förändra deras värden a) 1010 b) 011001 c) 1111111000 d) 01 F1.8. Ange hexadecimala representationen av följande binära tal: 100100100111111 F1.9. Anta ett tal består av n bitar. Vilket är största resp. minsta tal som går att representera om datatypen är a) Unsigned integer b) Signed integer (2- komplement)
Talsystem - Binär aritmetik. Flaggor F1.10. Addera följande binära tal. Låt svaret vara binärt a) 1011 + 0001 b) 0000 + 1010 c) 1100 + 0011 d) 0101 + 0110 e) 1111 + 0001 F1.11. Vilken matematisk åtgärd motsvaras av att skifta ett binärt tal ett steg åt vänster? F1.12. Addera följande 2- komplenttal a) 01 + 1011 b) 11 +01010101 c) 0101+110 d) 01 + 10 F1.13. Visa vad följande flaggor sätts till efter nedanstående beräkningar. Motivera varför! Anta 4- bitars tal l N (Negative) l Z (Zero) l O (Overflow) l C (Carry) l a) 1101 + 1000 b) 0110 + 0101 c) 0111 + 1001 d) 0110 + 1001 Talsystem - Flyttal F1.14. Vad är decimala representationen av följande flyttal (för beskrivning av flyttal, se uppgift F1.15)? 0100 000110111101 0100 0000 0000 0000 F1.15 Representera följande tal som binärt i 32 bitars flyttal. 2.150 32- bitars flyttal lagras enligt nedan: 31 30 23 22 0 s exponent mantissa Grundprincip: N = 1 s x 1.M*2 E 127. 0<exponent<255 (IEEE standard) exponent 1 och 255 är för special fall.
Minne Minne - Grunder F2.17. Vad menas mer exakt när man säger att minne är på 32kB stort och är på 16 bitar. F2.18. Hur många adresspinnar finns det på ett 64kB parallellt (data läses ut parallellt) minne? (anta 8- bitar) F2.19. Förklara principiellt hur ett ''vanligt" halvledarminne är uppbyggt. Dvs hur man kan nå olika positioner i minnet. F2.20. Om en dator har 16- bitars databuss och en adressbuss på 32 bitar, hur stort minne kan då datorn ha? Ange svaret i byte med lämpligt prefix. (kilo= 1024) F2.21. Du har köpt en minneskapsel med 4 ben märkt d0- d3 och 14 adresspinnar. Vad är minnets ordlängd, adressrymd samt totala storlek uttryckt i kb? Minne- Minnestyper F2.22. Förklara följande olika minnestyper RAM ROM SRAM DRAM EPROM EEPROM FLASH F2.23. Nämn en fördel/nackdel med SRAM framför DRAM. F2.24. Förklara hur en skrivning går till från minnet. Ange speciellt vad som sker på de olika bussarna. Datormodell F2.1. Hur ser Von Neumann modellen för en dator ut?' F2.2. Beskriv hur CPU:n kommunicerar med minnet samt vilka register som används F2.3. Hur avgör man i von Neumann modellen av en dator om innehållet i en minnescell är en instruktion eller ett tal? F2.4. Vad styrenhetens uppgift i en processor?
Instruktionsbegreppet F2.6. Om vi har en ISA med 27 opcoder och 16 register och låt oss anta en 32- bitars instruktion, men följande format: där SR= Source Register (varifrån man läser), DR=Destination Register. (där svaret hamnar). Ex) ADD R2,R1,#2 ; R2 =DR, R1=SR, #2 är IMMediatevärdet Vilket är största resp. minsta värde som immeditate- värdet (lmm) kan ha, Anta att lmm är i tvåkomplements form? F2.7. Nämn tre platser en instruktions operand kan befinna sig på! Instruktionscykel F2.8. Förklara vad som händer på de olika stegen i instruktionscykeln då man utför kommandona a) LDR R5,[R6,#5] b) SUB R1, R2, R4 c) B TEST Instruktionscykeln 1. FETCH 2. DECODE 3. EVALUATE ADRESS 4. FETCH 5. OPERANDS EXECUTE 6. WRITE BACK F2.9. Vad är adresseringsmode hos en processor? F2.10. Förklara följande olika adresseringsmode a) lmmediate b) Direct c) Base+lndex d) Register F2.11. Vilka adresseringsmode används i följande fall a) Addition av innehåll i två register. Lägg i ett tredje b) Inläsning från en minnesposition c) R3 innehåller adress till början på en tabell. Vill läsa tredje talet från toppen av tabellen. d) Addera talet 5 till R1 och lägg svaret i R2
F2.12. Ge exempel på assemblerinstruktioner som nyttjar följande adresseringsmode a) lmmediate b) Direct c) Base+lndex d) Auto+index e) Register Assembler F3.13. Vad är skillnaden mellan ett assemblerdirektiv och en instruktion? Ge exempel på en av varje! F3.14. Vad innebär 2- passassemblering? F3.15. Vad är en label? F3.16. Vad är en symboltabell? Programmering F3.P1 Skriv ett program som jämför vilket tal som är störst av det i R1 eller R2. Det tal som är störst ska hamna i R3 a) Anta talen är unsigned b) Anta talen är tvåkomplement F3.P2. Skriv ett program som laddar in tal från adressen som ligger på platsen ADRESS och lägger på platsen DEST. Placera två tal på dessa adresser med lämpliga assemblerdirektiv. F3.P3. Skriv program som läser in vartannat 8- bitars tal från adresser som antas finnas i R3 och framåt. Talen ska summeras upp i R4. Då talet 0 upptäcks ska additionen avbrytas. F3.P4. Gör ett program som skriver talet 43 till den fördefinierade adressen PORTO. Anta man skriver 1 byte. F3.P5. Gör ett program som läser från den fördefinierade adressen PORTO. Anta man läser 1 byte. Om bit 3 är 1 skriv talet 0 till PORTO, annars talet 0xFF Tips: Tänk på vad man får som svar om man AND:ar med ett bitmönster med en etta på position 3. F3.P6. Gör ett program som plockar ut de 4 översta bitarna i R1 och lägger i R2. Tips: Tänk på vad som händer när man AND:ar med ett bitmönster med ettor på intressanta positioner.