Grundläggande datorteknik - eempelsamling Institutionen ör Data och Inormationsteknik Chalmers tekniska högskola Göteborg HT-203
Grundläggande datorteknik - eempelsamling Grundläggande datorteknik - eempelsamling 2 Talsstem och binära koder 2. Utör öljande talomvandlingar: a 8 0 =? 2 b 8 0 =? 6 c 8 0 =? NBCD d 8 0 =? EXCESS-3 e 8 0 =? GRAY4 2.2 Utör öljande talomvandlingar: a 93 0 =? 2 b 93 0 =? NBCD c 93 0 =? 6 d 93 0 =? EXCESS-3 2.3 Vilket av öljande alternativ är talet 5472 0 på naturlig binär orm avrundat till 7 bråksiror. a 000.000 2 b 00.00 2 c 00.00 2 d 00.000 2 e 000. 000 2 2.4 Ange ASCII-tecknet ör öljande tal: a 3F 6 b 49 0 c 00 2 2.5 Skriv öljande ASCII-kodade tetsträngar som en sekvens av headecimala kodord. a CHALMERS b tekniska c HOGSKOLA 2.6 Skriv öljande tal som NBCD-kod a 5283 0 b 40796 0 2.7 Antag 7 bitars binära tal naturlig binärkod där den mest signiikanta positionen är en paritetsbit. Ange de binära talen med jämn paritet bitmönstren ör öljande tal. a 00 2 b 32 0 c 6 6 3 4
Grundläggande datorteknik - eempelsamling 2.8 Antag 7 bitars binära tal naturlig binärkod där den mest signiikanta positionen är en paritetsbit. Ange de binära talen med udda paritet bitmönstren ör öljande tal. a 00 2 b 32 0 c 6 6 2.9 Omvandla öljande tal naturlig binär kod till decimal orm: a 00 2 b 00 2 c 00 2 d 0.0 2 e. 2 000.0 2 2.0 Omvandla öljande headecimala tal till decimal orm: a AB 6 b 6 c 80 6 d C.4 6 e 0.68 6 B3.D4 6 2. Omvandla öljande tal till naturlig binär kod. Bråken avkortas till 6 st. bråksiror. a 45 0 b 33 0 c 8765 0 d 228 0 e 45 6 33 6 g 4.8 6 h 0.6 6 2.2 Omvandla öljande tal till headecimal orm. Bråken avkortas till 2 st. bråksiror. a 255 0 b 330 0 c 937 0 d 3243 0 e 0 2 00000000 2 g. 2 h 00.00 2 2.3 En aels vridningsvinkel [0-359] ska kodas med Gra-kod. Hur många bitar måste kodorden minst ha ör att ge upplösningen: a b 2 Grundläggande datorteknik - eempelsamling 3 Switchnätalgebra 3. Åskådliggör öljande booleska uttrck med hjälp av grindsmboler NOT AND OR: a b e e c 3.2 Ange det booleska uttrcket ör öljande logiknät: a b c d 3.3 Vilket eller vilka av öljande booleska uttrck anger korrekt utsignalen ör nedanstående logiknät? a b c d = 3.4 Antag att och visa att 5 6
Grundläggande datorteknik - eempelsamling 3.5 Avgör ör vart och ett av öljande all om uttrcket är sant dvs. om VL = HL: a b c d 0 e 3.6 Bestäm A och B i öljande logikkoppling: A B 3.7 Visa hur öljande logikgrindar kan ersättas med enbart 2-ingångars NAND-grindar. a b c 3.8 Visa hur öljande logikgrindar kan ersättas med enbart 2-ingångars NOR-grindar. a b c Grundläggande datorteknik - eempelsamling 3. Skriv öljande unktioner på disjunktiv normal orm. Bestäm mintermerna med hjälp av unktionstabell och binär evaluering. a b c w w d w w w 3.2 Vilket av öljande alternativ utgör den disjunktiva normalormen av den booleska unktionen:? a b c d e 3.3 Vilket av öljande alternativ utgör den disjunktiva normalormen av den booleska unktionen: w w? a w w w b w w w c w w w d w w w e w w w 3.4 Skriv öljande unktioner på konjunktiv normal orm. Bestäm matermerna med hjälp av unktionstabell och binär evaluering. a b c w w d w w w 3.9 Realisera öljande booleska unktioner med hjälp av 2-ingångars NAND-grindar. a b c w w 3.0 Realisera öljande booleska unktioner med hjälp av 2-ingångars NOR-grindar. a b c w w 3.5 Vilket av öljande alternativ utgör den konjunktiva normalormen av den booleska unktionen:? a b c d e 7 8
Grundläggande datorteknik - eempelsamling 3.6 Tag ram en minimal disjunktiv orm till var och en av unktionerna beskrivna av öljande Karnaughdiagram: a b 00 0 0 00 0 0 Grundläggande datorteknik - eempelsamling 3.7 Tag ram en minimal konjunktiv orm till var och en av unktionerna beskrivna av öljande Karnaughdiagram: a b 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c w d w 00 0 0 00 0 0 c w d w 00 0 0 00 0 0 00 0 0 0 0 00 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e w w 00 0 0 00 0 0 e w w 00 0 0 00 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0-0 0 0 0 0 0 0 0 0-0 0 0 0 - - 0 0 0 0 0 0 - - 0 0 0 0 0 g w h w 00 0 0 00 0 0 g w h w 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0-0 - 0 0 0 0 0 0 0 0-0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 i w j w 00 0 0 00 0 0 i w j w 00 0 0 00 0 0 00 0 0 00 0 0 0 00 0 0 00 0 0 0 0-0 0 0 0 0 0-0 0 0 0 0 0-0 0 0 0 0 0-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0
Grundläggande datorteknik - eempelsamling 4 Aritmetik 4. Ange decimala motsvarigheten till öljande 8-bitars tal givna på binärorm. a 0000 b 0000 c 0000 d 0000 4.2 Ange decimala motsvarigheten till öljande 8-bitars tal givna på tvåkomplementsorm. a 0000 b 0000 c 0000 d 0000 4.3 Ange öljande decimala tal som 8-bitars binära tal på tvåkomplementsorm. Ledning bestäm örst binär orm av talet utan minustecken tvåkomplementera däreter a -0 b -38 c -42 d -56 Grundläggande datorteknik - eempelsamling 4.7 Utör visa med papper och penna öljande subtraktioner R=X-Y av 8-bitars tal givna på binärorm. Subtraktionerna ska utöras som addition av 2-komplement dvs. R = X + 2~Y. Ange XY och R på decimal orm ange dessutom hur laggorna C och Z påverkas av operationerna. Etersom subtraktionen utörs som addition av 2-komplement örutsätts laggan C vid denna operation representera inversen av en lånesira borrow till den mest signiikanta positionen. a X = 00 Y = 000000 b X = 000000 Y = 00 c X = 00 Y = 000000 d X = 000000 Y = 00 4.8 Utör visa med papper och penna öljande subtraktioner R=X-Y av 8-bitars tal givna på tvåkomplementsorm. Subtraktionerna ska utöras som addition av 2-komplement dvs. R = X + 2~Y. Ange XY och R på decimal orm ange dessutom hur laggorna N V och Z påverkas av operationerna. a X = 00 Y = 000000 b X = 000000 Y = 00 c X = 00 Y = 000000 d X = 000000 Y = 00 e X = 0000000 Y = 0 4.4 Utör visa med papper och penna öljande additioner R=X+Y av 8-bitars tal givna på binärorm. Ange XY och R på decimal orm ange dessutom hur laggorna C och Z påverkas av operationerna. a X = 000000 Y= 00000 b X = 000 Y= 000000 c X = 000000 Y= 000000 d X = 00000 Y= 0000 e X = 00000 Y= 00000 4.5 Utör visa med papper och penna öljande additioner R=X+Y av 8-bitars tal givna på tvåkomplementsorm. Ange XY och R på decimal orm ange dessutom hur laggorna N V och Z påverkas av operationerna. a X = 000000 Y = 00000 b X = 000 Y = 000000 c X = 000000 Y = 000000 d X = 00000 Y = 0000 e X = 00000 Y = 00000 4.6 Utör visa med papper och penna öljande subtraktioner R=X-Y av 8-bitars tal givna på binärorm. Ange XY och R på decimal orm ange dessutom hur laggorna C och Z påverkas av operationerna. Flaggan C örutsätts vid denna operation representera en lånesira borrow till den mest signiikanta positionen. a X = 00 Y = 000000 b X = 000000 Y = 00 c X = 00 Y = 000000 d X = 000000 Y = 00 2
Grundläggande datorteknik - eempelsamling 5 Kombinatoriska nät 5. Konstruera ett minimalt kombinatoriskt nät BCD-7 som konverterar ett binärt kodat decimaltal till så kallad Sju-segment kod enligt öljande tabell: decimal A B C D a b c d e g sira 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 6 0 0 0 0 7 0 0 0 0 0 8 0 0 0 9 0 0 0 0 0 0 - - - - - - - 0 - - - - - - - 0 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - 5.2 En sju-segments indikator har segmenten ördelade enligt öljande igur: c a Ställ upp en unktionstabell ör utsignalerna a-g. b Konstruera ett minimalt kombinatoriskt nät ör översättning rån de decimala sirorna 0-9 rån BCD-orm till indikatorn. 5.3 Konstruera ett kombinatoriskt nät Increment som adderar till ett 4-bitars tal. Nätet består av 4 insignaler 3 2 och 0 samt 4 utsignaler u 3 u 2 u och u 0. 3 2 0 Increment u3 u2 u u0 e b a g d Ställ upp unktionstabell ör utsignalerna och realisera ett minimalt kombinatoriskt nät. Använd AND/OR-logik och örutsätt att även insignalernas inverser inns tillgängliga. 5.4 Ett kombinatoriskt nät Decrement som subtraherar rån ett 4-bitars tal tvåkomplementsorm ska konstrueras. Nätet består av 4 insignaler 3 2 och 0 samt 4 utsignaler u 3 u 2 u och u 0. 3 2 0 Decrement u3 u2 u u0 Ställ upp unktionstabell ör utsignalerna och realisera ett minimalt kombinatoriskt nät. Använd AND/OR-logik och örutsätt att även insignalernas inverser inns tillgängliga. A B C D BCD-7 e d g a c b Grundläggande datorteknik - eempelsamling 5.5 Ett kombinatoriskt nät ör olika tper av skitoperationer av ett 8 bitars tal ska konstrueras. Nätets unktion beror av bitarna och 0 enligt öljande: 0 unktion 0 0 Ingen operation 0 Skit vänster 0 Skit höger Aritmetiskt skit höger Insignaler: 7 6 5 4 3 2 0 SI Utsignaler: u 7 u 6 u 5 u 4 u 3 u 2 u u 0 SO 3 2 0SI 0 8-bitars ord bit som skitas in i vakant position 8-bitars skitat ord bit som skitats ut a Ställ upp en unktionstabell där alla utsignaler uttrcks som insignaler eller konstanter. b Realisera det kombinatoriska nätet med hjälp av av 4 väljare. 5.6 Ett logiknät som skitar bitar lera positioner under en klockckel kallas ör Barrel-shiter. Konstruera ett sådant kombinatoriskt nät ör högerskit. Du har tillgång till 4 st. av 4 väljare. Insignaler: 3 2 0 är det ord som skall skitas. s s 0 selektor anger antal skit enligt: 00 skit 0 2 skit 0 3 skit 4 skit Utsignaler: u 3 u 2 u u 0 är resultatet dvs. det skitade ordet 3 2 0 s s0 -bitshit Barrelshit u3 u2 u u0 SO u3 u2 u u0 a Konstruera ett kombinatoriskt nät som utör högerskit av ett 4-bitars ord. Mest signiikanta inskitade bitar är alltid 0. Utskitade bitar ignoreras. b Konstruera ett kombinatoriskt nät som utör höger rotation av ett 4-bitars ord. Den minst signiikanta biten skitas här till den mest signiikanta positionen. c Konstruera ett kombinatoriskt nät som utör aritmetiskt högerskit av ett 4-bitars ord. Mest signiikanta inskitade bitar är alltid 0. Utskitade bitar ignoreras. 5.7 Funktionen. ska implementeras med hjälp av en av 2 väljare. Detta kan göras på tre olika sätt. Visa den lösning som använder minimalt antal grindar utöver väljaren. 5.8 **Härled uttrck ör ett kombinatoriskt nät som realiserar inkrement -unktion ör ett 8-bitars register. Varje utsignal ska uttrckas eplicit. 5.9 **Härled uttrck ör ett kombinatoriskt nät som realiserar dekrement -unktion ör ett 8-bitars register. Varje utsignal ska uttrckas eplicit. 3 4
Grundläggande datorteknik - eempelsamling 6 Sekvensnät 6. I iguren visas en SR-latch jämte tidsdiagram ör S- och R- signalerna. Komplettera tidsdiagrammet med då =0 rån början. S R S R S R Grundläggande datorteknik - eempelsamling 6.5 I iguren visas en T-vippa jämte tidsdiagram ör T- och -signalerna. Komplettera tidsdiagrammet med då =0 rån början. T C 6.6 Ställ upp unktionstabell rita tillståndsgra och pulsdiagram ör den autonoma räknaren. Pulsdiagrammet skall utgå rån tillståndet Q = 0 2 = 0 T T C 6.2 I iguren visas en SR-vippa jämte tidsdiagram ör S- R- och -signalerna. Komplettera tidsdiagrammet med då =0 rån början. S R S R S C R 6.3 I iguren visas en lanktriggad JK-vippa jämte tidsdiagram ör J- K- och -signalerna. Komplettera tidsdiagrammet med då =0 rån början. J K C J K J C K C 0 6.7 Ställ upp unktionstabell rita tillståndsgra och pulsdiagram ör den autonoma räknaren nedan. Pulsdiagrammet skall utgå rån tillståndet Q = 2 0 2 = 0 6.4 I iguren visas en D-vippa jämte tidsdiagram ör D- och -signalerna. Komplettera tidsdiagrammet med då =0 rån början. D C D D C C 2 0 5 6
Grundläggande datorteknik - eempelsamling 6.8 Ställ upp unktionstabell och rita tillståndsgraen ör öljande räknare med räknevillkoret. Grundläggande datorteknik - eempelsamling 6. Analsera räknaren nedan. Visa dess ullständiga tillståndsgra. Tillstånden kodas som binärt tal: 2 0. 6.9 Ställ upp unktionstabell och rita tillståndsgraen ör öljande räknare med räknevillkoret. 6.0 Analsera räknaren nedan. Utgå rån initialtillståndet 0 vilken räknesekvens motsvarar räknarens tillståndsgra? Tillstånden kodas som binärt tal: 2 0. 6.2 En 2-bitars tillståndsmaskin illustreras av öljande tillståndsgra: 00 = 0 =0 0 Konstruera en snkron räknare som realiserar tillståndsgraen. Använd T-vippor AND- ORoch INVERTERAR-grindar. a 02345670... b 02467350... c 02476350... 6.3 Konstruera en räknare med strsignal som realiserar öljande tillståndsgra. Använd D-vippor och grindarna AND OR och INVERTERARE. Förutsätt att räknaren alltid startar i tillstånd 00. 7 8
Grundläggande datorteknik - eempelsamling 6.4 Konstruera en autonom snkron modulo-6 räknare med räknesekvens: 2 0 = 000 00 0 0 00 000 och vipptp enligt nedan. Dessutom år AND- OR- och INVERTERAR-grindar användas. a Vipptp: D. b Vipptp: T. D D C 6.5 Konstruera en snkron räknare med en strsignal som bestämmer räknarens unktion på öljande sätt = 0 Räknaren räknar enligt sekvensen 0 = 00 0 0 00 = Räknaren räknar enligt sekvensen 0 = 00 0 0 00 Av de två sekvenserna ovan ramgår att räknaren är reversibel dvs. den kan räkna en bestämd sekvens ramåt eller bakåt. Använd T-vippor och valria grindar. 6.6 Konstruera en snkron reversibel räknare med en strsignal vilken bestämmer räknarens unktion enligt: = 0: Sekvensen 000000000000000 Gra-kod = : Sekvensen 000000000000000 Gra-kod baklänges T-vippor och valria grindar år användas. 6.7 Konstruera en snkron räknare med strsignaler och som bestämmer räknarens unktion på öljande sätt: = : Räknaren örsätts i tillstånd 000. = 0: = 0: Räknaren räknar enligt sekvensen 2 0 = 000000000000000... = : Räknaren örsätts i tillstånd 0. D-vippor och valria grindar år användas. Rita också en tillståndsgra som beskriver räknaren. 6.8 Konstruera ett 4-bitars snkront skitregister 3 2 0 med D- vippor enligt iguren till höger och valria komponenter ör den kombinatoriska delen. Kretsen ska ha en strsignal e enable: e = 0: skitregister kvarstannar i beintligt tillstånd e = : ett aritmetiskt högerskit utörs. Utskitad bit 0 ignoreras. T T C 2D G C2 Grundläggande datorteknik - eempelsamling 7 Dataväg ALU och minne För uppgiter i detta kapitel där ALU'n ingår gäller ALU-unktioner enligt öljande tabell. unktion operation utsignaler 3 2 0 RTN u 7 u 6 u 5 u 4 u 3 u 2 u u 0 N Z V C 0 0 0 0 0 U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FD 6 U 0 0 0 0 0 0 0 FE 6 U 0 0 0 0 0 0 FF 6 U 0 0 0 0 0 0 E U e 7 e 6 e 5 e 4 e 3 e 2 e e 0 u 7 0 0 0 0 D k +C in U u 8 7 dddddd7 0 0 D E U 7e 7 6e 6 5e 5 4e 4 d e 3 3 2e 2 d e 0e 0 u7 0 0 ddddddd0 DE U 7e 7 6e 6 5e 5 4e 4 3e 3 2e 2 ed 0e 0 u7 0 0 ddd 0 0 0 DE U 7e 7 6e 6 d e 5 5 4e 4 d e 3 3 d e d e d e 2 2 0 0 u7 0 0 0 0 D+C in U u 2 3 7 0 0 D+FF 6 U u 2 3 7 0 D+E+C in U u 2 3 7 0 0 D+E+C in 2k U u 2 3 7 0 D<< C in U d 6 d 5 d 4 d 3 d 2 d d 0 C in u 7 0 4 0 C in >>D U C in d 7 d 6 d 5 d 4 d 3 d 2 d u 6 5 7 d 7>>D U d 7 d 7 d 6 d 5 d 4 d 3 d 2 d u 7 0 5 Anm: Dk = -komplement D = D' E+Cin2k = 2-komplement E+Cin = 0-E-Cin Z u dvs. Z= då samtliga bitar i register U är 0 Z=0 annars. 7 u 6 u 5 u 4 u 3 u 2 u u 0 2 V u dvs. V-laggan sätts enligt reglerna ör tvåkomplementsaritmetik. 7 d7 e7 u7 d7 e7 3 C = c8 dvs. carr ut rån additionen av de mest signiikanta sirorna. 4 C = utskitad bit dvs. bit d7 öre vänsterskitet. 5 C = utskitad bit dvs. bit d0 öre högerskitet. 6 V = Cind7 öre skit dvs. sätts till om skitet öranleder teckenbte. 7 C ettställs om D=0 C nollställs annars. 8 V ettställs om D=00000002 V nollställs annars. 7. Strsignaler ör registeröveröringar: Använd igurens dataväg och ange strsignalssekvenser ör öljande registeröveröringar beskrivna enligt RTN. 6.9 Konstruera ett 4-bitars snkront skitregister 3 2 0 med D-vippor och valria kombinatoriska komponenter. Kretsen ska ha två strsignaler e enable och d direction: e = 0: skitregister kvarstannar i beintligt tillstånd e = : ett skit utörs. d = 0: vänsterskit d = : högerskit 2D C2 G Utskitade bitar 3 vid vänsterskit och 0 vid högerskit placeras i en D-vippa med beteckningen c. Inskitade bitar 0 vid vänsterskit och 3 vid högerskit tas rån D-vippa c. Operation RTN a T A b T AR c R T A R T A = A R Aktiva strsignaler 9 20
Grundläggande datorteknik - eempelsamling 7.2 Enkla unära operationer: Använd igurens dataväg och ange strsignalssekvenser ör öljande operationer. a Nollställ innehållet i register A. b Addera till innehållet i register A. c Bitkomplementera innehållet i register A. d Negera tvåkomplementera innehållet i register A. Ge svaren i en tabellorm enligt öljande: Ckel Operation RTN Aktiva strsignaler 2 Grundläggande datorteknik - eempelsamling 7.5 Register/minne addition. Använd igurens dataväg och ange strsignalssekvenser ör operationen: A+M4 6 A A T LDA LDT Ge svaret i tabellorm enligt öljande: Ckel Operation RTN Aktiva strsignaler 2 3 4 5 6 OEA 3 2 ALUN ALUZ NĦ0 0 ALU ALUV ZĦ0 ALUC VĦ0 CĦ0 0 0 C 2 C 3 g9 g8 N R g7 g6 Z 0 2 3 g g0 LDR g5 g4 V g3 g2 C OER LDCC OECC b3 b2 b b0 CC Source OES TA LDTA Adress Minne MW I/O MR Data 7.3 Använd igurens dataväg och ange en strsignalssekvens enligt öljande RTN-beskrivning: Ckel Operation RTN Aktiva strsignaler 20 6 A 2 A- R 3 R A 4 F0 6 T 5 A T R 6 R A 7.6 Minnesaddition. Använd igurens dataväg och ange strsignalssekvenser ör operationen: M2 6+M3 6 M4 6 A T LDA LDT Ge svaret i tabellorm enligt öljande: Ckel Operation RTN Aktiva strsignaler 2 3 4 5 6 OEA 3 2 ALUN ALUZ NĦ 0 0 ALU ALUV ZĦ0 ALUC VĦ 0 CĦ 0 0 0 C 2 C 3 g9 g8 N R g7 g6 Z 0 2 3 g g0 LDR g5 g4 V g3 g2 C OER LDCC OECC b3 b2 b b0 CC OES LDTA MW MR Source Adress Data TA Minne I/O 7.7 8/6 bitars addition. Använd igurens dataväg och ange strsignalssekvenser ör operationen: A+M2 6:M3 6 M20 6 : M2 6 Ge svaret i tabellorm enligt öljande: LDA A LDT T b3 b2 b b0 Source 7.4 Enkla minnesoperationer: Använd igurens dataväg och ange strsignalssekvenser ör öljande operationer. a Kopiera innehållet på adress 0 6 till register A. b Kopiera innehållet indirekt rån adress 0 6 till register A. c Utgå rån att register A innehåller en adress och kopiera innehållet rån den adressen till register A. d Kopiera innehållet rån register A till adress 0 6. LDA OEA A T LDT 3 2 ALUN ALUZ NĦ0 0 ALU ALUV ZĦ0 ALUC VĦ0 CĦ0 0 0 C 2 C 3 g9 g8 N R g7 g6 Z 0 2 3 g g0 LDR g5 g4 V g3 g2 C CC OER LDCC OECC b3 b2 b b0 OES LDTA MW MR Source Adress Data TA Minne I/O Ckel Operation RTN Aktiva strsignaler 2 3 4 5 6 OEA 3 2 ALUN ALUZ NĦ 0 0 ALU ALUV ZĦ0 ALUC VĦ 0 CĦ 0 0 0 C 2 C 3 g9 g8 N R g7 g6 Z 0 2 3 g g0 LDR g5 g4 V g3 g2 C OER LDCC OECC CC OES LDTA MW MR Adress Data TA Minne I/O 2 22
Grundläggande datorteknik - eempelsamling 8 Strenheten 8. I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 MSP Y; Q5 SP+ SP; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.2 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 SP- SP; Q5 Y MSP; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.3 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 n T; PC+ PC Q5 Y MT+X; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.4 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 n T; Q5 MT+X R; Q6 R PC; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.5 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 A R; ALUNZ CCnZ; 0 V; Q5 R A; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? Grundläggande datorteknik - eempelsamling 8.6 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 d7a>> R; Q5 R A; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.7 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 A T Q5 CMA+Y>> R; Q6 R MA+Y; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk. 8.8 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 PC TAT; Q5 MTA+ R; PC+ PC; Q6 in= R PC; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.9 I öljande tabell visas RTN-beskrivningen ör EXECUTE-sekvensen ör en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler = Q4 PC TAT; Q5 MTA+ R; PC+ PC; Q6 ic+z= R PC; a Ange ör varje tillstånd de strsignaler som är aktiva. b Vad är instruktionens namn med assemblerspråk? 8.0 I instruktionslistan ör FLIS-processorn inner vi en maskininstruktion som beskrivs enligt öljande: Instruktion Adressering Operation Flaggor COM Variant metod OP # ~ N Z V C COM Adr Absolute 3A 2 4 MAdr ' MAdr Δ Δ 0 Visa hur instruktionens EXECUTE-as implementeras hos en FLIS-processor med ast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. 23 24
Grundläggande datorteknik - eempelsamling 8. I instruktionslistan ör FLIS-processorn inner vi en maskininstruktion som beskrivs enligt öljande: Instruktion Adressering Operation Flaggor JMP Variant metod OP # ~ N Z V C JMP AX Indeed 63 4 A+X PC - - - - Visa hur instruktionens EXECUTE-as implementeras hos en FLIS-processor med ast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. 8.2 I instruktionslistan ör FLIS-processorn inner vi en maskininstruktion som beskrivs enligt öljande: Instruktion Adressering Operation Flaggor ROL Variant metod OP # ~ N Z V C ROL nsp Indeed 4D 2 4 Mn+SP<< Mn+SP Δ Δ Δ Δ Visa hur instruktionens EXECUTE-as implementeras hos en FLIS-processor med ast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. 8.3 I instruktionslistan ör FLIS-processorn inner vi en maskininstruktion som beskrivs enligt öljande: Instruktion Adressering Operation Flaggor BLT Variant metod OP # ~ N Z V C BLT Adr Relativ 2F 2 4 I NV = : PC+Oset PC - - - - Visa hur instruktionens EXECUTE-as implementeras hos en FLIS-processor med ast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. Grundläggande datorteknik - eempelsamling 9 Assemblerprogrammering Komplettera öljande tabeller som anger operander och operatorer med de resulterande uttrckens värden. A B A+B A-B A*B A/B A%B 32 7 32 32 6 7 A B ~A AB A B A^B 32 7 32 32 6 7 A B A>>B A>>B 32 7 32 32 6 7 A B A==B A!=B A<=B A>=B A<B A>B 32 7 0 0 0 32 32 0 0 0 6 7 0 0 0 A B!A AB A B 32 7 32 32 6 7 9. Följande igur illustrerar några ragment minne hos en FLISP-dator. I minnet inns en branch - instruktion samt dess mål indikerade. Bestäm instruktionens operand dvs. det värde som inns lagrat på adress 5A. 0 58 59 5A 5B 5C 2 BRA Adress OPERAND 8 OPKOD Adress 25 26
Grundläggande datorteknik - eempelsamling 9.2 Följande igur illustrerar några ragment minne hos en FLISP -dator. I minnet inns en branch - instruktion samt dess mål indikerade. Bestäm instruktionens operand dvs. det värde som inns lagrat på adress 63. 0 OPKOD Adress Grundläggande datorteknik - eempelsamling 9.5 Översätt öljande assemblerprogram ör FLISP till maskinkod assemblera programmet. Komplettera iguren så att det klart ramgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på. 62 63 64 65 2 OPERAND BRA Adress Adress Innehåll Assemblerkod disassemblering ORG $30 Start: LDX #$0C 9.3 För vilka värden på U utörs hoppet nedan? Betrakta U som ett tal 0255. LDA #$85 CMPA #U BVillkor Hopp om den villkorliga instruktionen är a BHI e BGT b BHS BGE c BLS g BLE d BLO h BLT Loop: LDA X+ STA $FC TSTA BPL Loop Stop: JMP Stop 9.4 Översätt öljande sekvens av assemblerdirektiv ör FLIS-assemblatorn till maskinkod assemblera programmet. Komplettera iguren så att det klart ramgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på. Adress Innehåll Assemblerkod ORG $E0 FCB %0000 RMB 2 FCB $7A FCB a FCS ABCD 9.6 Översätt öljande assemblerprogram ör FLISP till maskinkod assemblera programmet. Komplettera iguren så att det klart ramgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på. Adress Innehåll Assemblerkod disassemblering ORG $20 Length: EQU 4 Start: LDX #Table LDA Length STA Count Loop: LDA X+ STA $FC 27 28
Grundläggande datorteknik - eempelsamling DEC Count LDA Count BNE Loop Stop Jmp Stop Count RMB Table: FCB $0%000 Grundläggande datorteknik - eempelsamling 6: PSHC 62: PSHX 63: LDX #$5 65: INCA 66: PULX 67: PULC 68: PULA 69: RTS Beskriv stackens utseende dvs. komplettera öljande tabell då programräknaren PC har öljande värden: PC 22 25 45 60 49 27 SP SP - SP+ - - - SP+2 - - - SP+3 - - - SP+4 - - - - - 9.7 Ur en FLISP-dators minne avläser vi öljande minnesinnehåll headecimalt: 9048994F52403EB2FA2FE Utgå i rån att ett program är lagrat här med början på adress 20 6. Identiiera instruktionssekvensen dvs. disassemblera minnesinnehållet. 9.8 Ur en FLISP-dators minne avläser vi öljande minnesinnehåll headecimalt: F7A060EA6C4A5C52402F002FE Utgå i rån att ett program är lagrat här med början på adress 20 6. Identiiera instruktionssekvensen dvs. disassemblera minnesinnehållet. 9.9 Följande program inns lagrat i en FLISP-dators minne: ; Huvudprogram 20: LDSP #$F0 22: LDX #$50 24: PSHX 25: JSR $40 27: STA $E0 29: JMP $0 ; Subrutin 40: PSHA 4: PSHX 42: PSHC 43: LDX #$E0 45: LDA #$03 47: JSR $60 49: PULC 4A: PULX 4B: PULA 4C: RTS ; Subrutin 2 60: PSHA 29 9.0 En 8-bitars strömbrtare DIP_SWITCH är ansluten till adress FB 6 och en displaenhet HEXDISPLAY som visar en bte i orm av två headecimala siror är ansluten till adress FC 6 i en FLISP dator. Konstruera en subrutin DipHe som läser av strömbrtaren och indikerar den minst signiikanta påslagna biten genom att skriva dess position räknat rån höger till displaenheten. Om eempelvis bitarna 2 och 4 utgör ettställda strömbrtare ska positionen ör bit 2 dvs. 3 skrivas till displaenheten. Om ingen strömbrtare är ettställd ska siran 0 skrivas till displaen. Speciellt gäller att smboler ska deinieras och användas ör absoluta adresser. 9. Två strömbrtare är anslutna till inportar med adresser FB 6 och FC 6 i en FLISP-dator. Dessutom är en ljusdiodramp ansluten till en utport med adress FB 6. Konstruera en subrutin DipSwitchOr som bildar logisk ELLER av värdena som läses rån strömbrtarna. Subrutinen ska utormas så att avläsningen och indikering görs en gång. Kontinuerlig unktion ås genom att subrutinen oupphörligt anropas rån ett huvudprogram "main". Speciellt gäller att smboler ska deinieras och användas ör absoluta adresser. 9.2 I simulatorn ör FLIS-datorn kan man ansluta strömbrtarmodulen DIPSWITCH till en inport och sierindikatorn 7-SEGMENT till en utport. Skriv ett program som kontinuerligt läser av två 4-bitars tal rån de åtta strömbrtarna på DIPSWITCH via inporten $FB adderar de två talen och visar summan 4 bitar som en decimal sira på sierindikatorn 7-SEGMENT ansluten till utport $FC. Från inporten läses två 4-bitars binära tal P och Q samtidigt. P inns på bit 7654 och Q på bit 320. Summan P+Q skall omvandlas till segmentkod och visas som en sira 0-9 på sierindikatorn. Om summan är större än nio skall ett E ERROR visas. 30
Grundläggande datorteknik - eempelsamling Du har tillgång till en tabell med segmentkoder och öljande deinitioner: Error EQU $5D ; Segmentkod ör E Error SegCode FCB etc ; Tabell med segmentkoder ör [09] 9.3 Skriv en subrutin CNTONE i assemblerspråk ör FLIS-processorn som räknar antalet ettor i register A. Vid återhopp skall register A innehålla antalet ettor som anns i registret vid anropet. Om registret innehåller 5 st ettor vid anropet så skall det alltså innehålla talet %000000 vid återhoppet. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. Hur skall programmet ändras om man istället vill räkna antalet nollor? 9.4 Skriv en subrutin ASCBIN i assemblerspråk ör FLIS-processorn som översätter ett 7-bitars ASCII-tecken ör en headecimal sira 0-9 eller A-F till motsvarande binära tal %00000000- %0000. Vid anrop av subrutinen innehåller register A ASCII-tecknet i bitarna b6-b0 medan b7 är en checkbit med okänt innehåll. Vid återhopp skall det binära talet innas i register A. Om innehållet i register A vid anropet ej är ASCII-tecknet ör en headecimal sira så skall talet $FF innas i register A vid återhopp. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. 9.5 Skriv en subrutin CCOUNT i assemblerspråk ör FLIS-processorn som tar reda på hur många gånger ASCII-tecknet ör bokstaven 'C' örekommer i en nollterminerad tetsträng. Vid anrop av subrutinen skall startadressen till tetsträngen innas i X-registret och vid återhopp skall antalet C-tecken innas i A-registret. ASCII-tecknen i tetsträngen är lagrade med udda paritet med paritetsbiten som bit nummer 7. Den avslutande nollan har ingen paritets-bit. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. 9.6 Skriv en subrutin AaCNT i assemblerspråk ör FLIS-processorn som tar reda på hur många gånger ASCII-tecknen ör bokstäverna A och a örekommer i en nollterminerad tetsträng. Vid anrop av subrutinen skall startadressen till tetsträngen innas i X-registret och vid återhopp skall antalet ASCII-tecken innas i A-registret. ASCII-tecknen i tetsträngen är lagrade med jämn paritet med paritetsbiten som bit nummer 7. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. 9.7 Skriv en subrutin SMALLCNT i assemblerspråk ör FLIS-processorn som söker igenom en tetsträng med 7- bitars ASCII-tecken och räknar alla ASCII-tecken som motsvarar små bokstäver a-. Vid anrop av subrutinen skall adressen till tetsträngen innas i X-registret. Tetsträngen avslutas med datavärdet 0. Det sökta antalet skall returneras i A-registret. För övrigt år endast CC-registret vara örändrat vid återhopp. Ett ASCII-tecken är lagrat i bit6-bit0 på varje adress i tetsträngen. Bit7 i tetsträngens dataord har okänt värde. 9.8 I minnet i ett datorsstem med FLIS-processorn inns en nollterminerad sträng med sjubitars ASCII-tecken. Varje ASCII-tecken har kompletterats med en paritetsbit som åttonde bit bit nr 7. Skriv en subrutin LCOUNT i assemblerspråk ör FLIS-processorn som tar reda på hur många av ASCII-tecknen i strängen som motsvarar stora eller små bokstäver A - Z eller a -. Antalet bokstäver skall innas i A-registret vid återhopp. Vid anrop av subrutinen skall startadressen till strängen innas i X-registret. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. 9.9 Skriv en subrutin PRINT i assemblerspråk ör FLIS-processorn som matar ut ASCII-tecken 7 bitars ASCII lagrade som 8-bitars ord med mest signiikant bit nollställd till en skrivare enligt öljande beskrivning: - ASCII-tecknen som skall matas ut inns lagrade i minnet med örsta tecknet på adressen som inns i X-registret och öljande tecken på ökande adresser. 3 Grundläggande datorteknik - eempelsamling - Skrivarens dataingång 8 bitar är ansluten till utport $FB på FLIS-datorn. - Skrivarens statussignal READY är ansluten till bit 7 mest signiikant på inport $FC. Om signalen READY har värdet är skrivaren beredd att ta emot ett ntt ASCII-tecken. - Utmatning av ett dataord ASCII-tecken till skrivarens dataingång medör automatiskt att skrivaren nollställer signalen READY. - Utmatning av ASCII-tecken skall ortsätta tills ett dataord med värdet $00 läses rån minnet. Dataordet med värdet $00 används som slutmarkering och skall inte matas ut till skrivaren. - Återhopp rån subrutinen skall göras när utmatningen är ärdig. Vid återhoppet skall samtliga interna register utom PC ha samma värden som vid inhoppet. - Subrutinen skall ungera även om örsta dataordet som läses rån minnet är $00 dvs återhopp skall då ske direkt. 9.20 En ramp med ljusdioder enligt iguren till höger är ansluten till adress FC 6 i en FLISP-dator. a Skriv en subrutin BLINK som år samtliga dioder att blinka genom att örst tända och sedan släcka dom. Kontrollera unktionen genom att stega igenom subrutinen instruktionsvis. b Utorma som en n subrutin BLINKDELAY en ördröjning så att dioderna blinkar även då programmet eekveras normalt. c Beskriv subrutinerna BLINK och BLINKDELAY i orm av lödesplaner. d Skapa ett enkelt huvudprogram main som kontinueraligt anropar subrutinen BLINK. 9.2 En ramp med ljusdioder enligt iguren till höger är ansluten till en utport med adress FC 6 i en FLISP-dator. a Skriv en subrutin RLJUSH som år dioderna att bete sig som ett "rinnande ljus" där dioderna tänds upp en och en rån vänster till höger. Kontrollera unktionen genom att stega igenom subrutinen instruktionsvis. b Använd subrutinen BLINKDELAY så att man tdligt kan se det rinnande ljuset även då programmet eekveras normalt. c Beskriv lösningen rån b i orm av en lödesplan. 9.22 Två ramper med ljusdioder enligt iguren till höger är anslutna till utportarna med adress FB 6 och FC 6 i en FLISP-dator. Konstruera en subrutin RLJUSH6 som år dioderna att bete sig som ett kontinuerligt "rinnande ljus" där dioderna tänds upp en och en rån vänster till höger. Eter det att bit 0 hos diodrampen på adress FB 6 släckts ska bit 7 hos diodrampen på adress FC 6 tändas. Då dioden ör bit 0 på adress FC 6 släckts ska det rinnande ljuset börja om rån bit 7 på adress FB 6 osv. Använd en given subrutin BLINKDELAY så att man tdligt kan se det rinnande ljuset även då programmet eekveras normalt. Implementera dvs. skriv subrutinen i assemblerspråk. 9.23 I simulatorn ör FLIS-datorn kan man ansluta strömbrtarmodulen DIPSWITCH till en inport och sierindikatorn 7-SEGMENT till en utport. Skriv ett program som läser av ett värde på strömbrtarna visar värdet som en headecimal sira på sierindikatorn och sedan utör en ördröjning. Däreter skall sierindikatorn släckas 32
Grundläggande datorteknik - eempelsamling en n ördröjning utöras och örloppet upprepas rån början. Programmet som skall ha startadressen $20 beskrivs nedan. Det inns en ärdig subrutin DELAYS som utör en ördröjning på s. Programmet skall i tur och ordning:. Läsa strömbrtarna på inport $FB. 2. Maska ram bit 3-0 av det inlästa värdet som motsvarar den önskade ördröjningen i sekunder. 3. Visa detta värde som tillhör intervallet [0$F] på sierindikatorn på utport $FC. 4. Utöra ördröjningen. Hoppa till DELAYS gånger. 5. Släcka sierindikatorn. 6. Utöra ördröjningen igen. Hoppa till DELAYs gånger. 7. Hoppa tillbaka till. Du har tillgång till en tabell med segmentkoder och öljande deinitioner: SegCode FCB etc Tabell med segmentkoder ör [0F] DELAYS EQU wwww Startadress ör Dela-rutinen som utör s ördröjning 9.24 En FLIS-dator skall användas ör att stra ett elektroniskt lås. I låsprogrammet skall ingå en subrutin KEYCMP som jämör en sträng med inmatade ASCII-tecken med en annan sträng med 8-bitars ord som innehåller "nckeln" till låset. Bit 7 i varje inmatat ASCII-tecken har okänt värde medan motsvarande bit i "nckel-strängen" är noll. Bägge strängarna är lika långa relativt korta och noll-terminerade. Skriv en subrutin i assemblerspråk ör FLIS-processorn som jämör de två strängarna och returnerar antal el i A-registret. Vid anrop av subrutinen skall startadressen till den inmatade strängen innas i X-registret och startadressen till "nckelsträngen" i Y-registret. Endast register A och CC år vara örändrade vid återhopp rån subrutinen. 9.25 En FLIS-processor skall användas i strenheten ör en maskin. Till inport $FC är ett antal givare och switchar anslutna. En operatör skall stra maskinen via switcharna. Huvudprogrammet ör maskinstrningen skall utormas som en evighetsslinga där inporten läses av en gång i början på varje varv. Huvudprogrammet skall inledas med att stackpekaren örst sätts till värdet $FA. Sedan skall inporten läsas av och beroende på switcharnas och givarnas värden skall en av ra olika ärdiga subrutiner anropas om motsvarande villkor i tabellen nedan är uppllt. Eter återhopp rån subrutinerna eller om inget av villkoren i tabellen är uppllt skall ett ntt varv i slingan påbörjas. Rita en lödesplan som beskriver huvud-programmet och skriv huvudprogrammet i assemblerspråk ör FLIS-processorn. Huvudprogrammets startadress skall vara $20. Subrutinernas startadresser antas vara givna. Villkor Inport $FC bitnr Anropa subrutin 7 6 5 4 3 2 0?????? SUB 2?? 0?? 0 SUB2 3??? 0??? SUB3 4 0 0 0 0 0 0 SUB4 Grundläggande datorteknik - eempelsamling enligt ovan om CASE < 8. Programmet utormas som en evighetsslinga. Det skall utormas som lerval och inte som upprepade tvåval. Subrutinernas headecimala startadresser skall vara 80 67 75 52 90 B9 AF och E0. 9.27 Strenheten i en maskin innehåller en FLIS-dator. I en strsekvens skall strenheten invänta en negativ lank på en binär signal rån en givare ansluten till bit nr 3 på inport $FC. Skriv en generell subrutin NEDGE i assemblerspråk ör FLIS-processorn som detekterar en negativ lank på en av bitarna på inporten $FC. Vid anrop av subrutinen skall register A innehålla numret ör den bit på inport $FC som man vill undersöka. Övriga bitar på inporten $FC har okända värden. Återhopp rån subrutinen skall göras så snart en negativ lank har upptäckts. Endast register CC år vara örändrat vid återhoppet. Ledning:. Tänk på att signalen rån början kan ha värdet 0 eller. 2. Man kan använda en tabell med bitmasker ör de 8 olika allen bit 0-7. Visa också hur subrutinanropet ser ut i huvudprogrammet i det aktuella allet. Hur skall programmet ändras om man istället vill detektera en positiv lank? 9.28 Skriv en subrutin PCNT i assemblerspråk ör FLIS-processorn som söker igenom en sträng med 8-bitars dataord i minnet och räknar alla dataord där den vänstra halvan bildar ett rabitars binärt tal som är mindre än 6 dvs bitarna 7654 bildar ett binärt tal < 6. Vid anrop av subrutinen skall adressen till strängen innas i X-registret. Strängen avslutas med datavärdet $FF. Det sökta antalet skall returneras i A-registret. Endast A-registret och laggregistret år vara örändrat vid återhopp. 9.29 Skriv en subrutin SWAP ör FLIS-processorn som bter plats på databitarna i ett block i minnet så att bitarna 7654320 ersätts med 3207654 i hela blocket. Vid anrop av subrutinen inns antalet 8-bitars dataord i blocket i A-registret högst 50 st och begnnelseadressen i X-registret. Vid återhopp rån subrutinen år endast CC-registret vara örändrat. 9.30 Skriv en subrutin EXCHG ör FLIS-processorn som bter plats på minnesinnehållen i två lika stora minnesareor med 8-bitars dataord. Vid anrop av subrutinen inns antalet dataord i vardera minnesarean i A-registret högst 30 st och adresserna till de två dataareorna i X-registret och Y- registret. Vid återhopp rån subrutinen år endast register CC vara örändrat. 9.3 I minnet i ett datorsstem med FLIS-processorn inns ett antal 8-bitars tal med tecken lagrade i en tabell på adressen DTAB och ramåt ökande adress. Tabellen avslutas med talet 0. Skriv en subrutin ODDCNT i assemblerspråk som tar reda på hur många av de positiva talen i tabellen som är udda. Antalet tal i tabellen som uppller detta skall innas i A-registret vid återhopp. Endast register A och register CC år vara örändrade vid återhopp rån subrutinen. Ledning: Man vet här vad bit 0 och 7 skall ha ör värden. 9.26 I en strenhet ör en maskin används FLIS-datorn. Ett avsnitt av strprogrammet skall läsa av värdet CASE 8 bitar som inns på inporten $FB och däreter utöra en av åtta olika subrutiner SUB0-SUB7. Vilken subrutin som utörs bestäms av värdet på variabeln CASE. Om CASE = 0 utörs SUB0 om CASE = utörs SUB osv. Om CASE > 7 skall ingen av subrutinerna utöras. Adresserna till de åtta olika subrutinerna skall innas lagrade i minnet i en tabell med början på adressen $C0. Vid laddning av programmet i minnet skall också tabellen med subrutinadresserna laddas. Skriv ett huvudprogram i assemblerspråk som örst initierar stackpekaren till $20 och sedan läser värdet som inns på inporten $FB CASE. Däreter anropas en av subrutinerna 33 9.32 Skriv en subrutin BLKMAN som nollställer bit 7 och inverterar bit 5 i ett block med 6 st 8- bitars dataord i minnet. Adressen till dataordet med lägst adress inns i X-registret vid anrop av subrutinen. Vid återhopp rån subrutinen år endast CC-registret vara örändrat. Assemblerspråk ör FLIS-processorn skall användas. 34
Grundläggande datorteknik - eempelsamling Grundläggande datorteknik - eempelsamling 0 Adressavkodning 0. Ett datorsstem med 64 kbte adressrmd ska konstrueras. Konstruera adressavkodningen ör öljande: 2 kbte RWM rån adress 0 8 kbte ROM på de högsta adresserna En I/O-area på 8 bte med start på adress $C5A0 Du har tillgång till 8 kbte ROM-modul 2 kbte RWM-modul a Använd ullständig adressavkodning b Använd oullständig adressavkodning 0.2 Ett datorsstem med 64 kbte adressrmd ska konstrueras. Konstruera adressavkodningen ör öljande: 4 kbte RWM rån adress 0 8 kbte ROM på de högsta adresserna En I/O-area på 256 bte med start på adress $6000 Du har tillgång till 8 kbte ROM-modul 4 kbte RWM-modul a Använd ullständig adressavkodning b Använd oullständig adressavkodning 0.3 I ett datorsstem med snkron buss 64 kbte adressrmd och med 8 bitars databuss används en 6 kbte ROM-kapsel ör att lagra program och en 2 kbte RWM-kapsel ör att lagra variabler. Dessutom används en 8-bitars "three-state"-buert som inport och ett 8-bitars register som utport. I nedanstående igur visas hur "chip-select"-avkodningen ör dessa är utörd. a Redogör ör var i adressrummet processorn kan läsa eller skriva i de olika enheterna. Alla adresser där en enhet kan nås skall redovisas. b Konstruktören upptäcker vid provning av sstemet att märkliga saker ibland händer vid läsning av indata rån inporten. Hjälp konstruktören reda ut vad som händer. A 5 Indata Utdata A 2 A A 0 R/w VA OE Databuss A 5 A 0 VA C Register Databuss Adressbuss A0 A0 Adressbuss A3 A0 A 5 A 3 VA R/w CS R/w RWM 2 kbte A 5 A 4 A 3 VA CS ROM 6 kbte Databuss Databuss 35 36
Grundläggande datorteknik - eempelsamling 0.4 Ett datorsstem med snkron buss 64 kbte adressrmd och med 8 bitars databuss ska konstrueras. Centralenheten genererar en VA signal ör att indikera att innehållet på adressbussen är giltigt och en R/W-signal ör att indikera läsning respektive skrivning. Figuren nedan visar hur adressrummet ska användas alla adresser anges på headecimal orm. Sstemet skall bestckas med st. 8 kbte RWM-kapsel st. 4 kbte ROM-kapsel 4 st. inportar och 4 st. utportar. Modulernas modeller ges också i iguren. Med tanke på ramtida utbggnad skall alla moduler som ansluts till adressbussen vara ullständigt avkodade. Startadress 0000 Slutadress Adressbuss Adressbuss Grundläggande datorteknik - eempelsamling 0.6 I ett datorsstem med snkron buss 64 kbte adressrmd och med 8 bitars databuss har minneskretsar kopplats enligt iguren nedan. Primärminnet utgörs av ROM och RWM uppdelat på ra minneskapslar. a Vad betder örkortningarna ROM och RWM? b Hur stort är sstemets ROM respektive RWM? c Vilka adressområden headecimalt upptar respektive minneskapsel t o m 4? d Vilken roll har användningen av signalen VA vid adresseringen av en minneskapsel? A5A4 VA VA VA VA A4' A4' A3 A3 A4 A3' A3' CS RWM R/W CS ROM A0 A2 CS CS R/W 2 CS R/W 3 CS R/W 4 C000 Läs-/ skrivminne RWM 8 kbte b 7 Databuss b 0 Databuss b 7 b 0 D0 D7 R/W E080 F000 I/O area Läsminne ROM 4 kbte DFFF E7F FFFF CS Databuss a Konstruera chip select -logiken ör de två minneskapslarna. b Konstruera chip select -logiken ör in- och utportarna så att de ligger på adresserna $E0D0 - $E0D7 med inportar på udda adresser och utportar på jämna. Konstruktionen skall ha en gemensam del som skapar chip select ör hela I/O arean. 0.5 En utport där gränssnittet utgörs av endast ett register är normalt inte läsbar. Föreslå hur en ickeläsbar utport på adress $E0D skall "bggas om" så att den också blir läsbar. I iguren örutsätts CSW vara en korrekt bildad CS-signal ör porten visa hur CSW bildas. Visa även den kompletta adressavkodningslogiken. OE CS C Databuss 0.7 Föreställ dig en I/O-modul ör vilken RWM-modulen till vänster i iguren nedan har stått modell dvs. de har samma insignal- och utsignalstruktur mot en processorbuss. I I/O-modulen inns två inportar ingångs-buertar och två utportar utgångsregister av den tp som visas till höger i iguren. Den tar upp två adresser vilket innebär att på varje adress inns en inport och en utport. a I ett mikrodatorsstem med snkron buss 64 kbte adressrmd och med 8 bitars databuss har I/O-modulen adresserna $B800 och $B80. Visa hur modulen är ansluten till centralenheten. Adressavkodningen är ullständig. Signalerna VA respektive R/W används ör att indikera giltig adress respektive läs- eller skriv- /operation. b Visa hur I/O-modulen principiellt är kopplad internt dvs. hur de två inportarna och de två utportarna tillsammans med annan logik är ihopkopplade så att modulen kan representeras med en RWM-liknande modul. Adressbuss Indata Utdata CS RWM OE C Register R/w Databuss Databuss Databuss 37 38
Grundläggande datorteknik - eempelsamling 0.8 I CS-avkodningen ör ett datorsstem med 6 bitars adressbuss används två st. 2 till 4 - avkodare enligt iguren. Insignalerna till avkodarna är adressbitar rån adressbussen. Utsignalerna 0 7 rån avkodarna används ör att bilda CS-signalerna. a Analsera kopplingen och bestäm på vilka adresser minnesmodulerna och portarna är placerade. b Man vill placera en andra ROM-modul i direkt anslutning till den som redan inns. Visa CS-logiken och adressintervallet ör denna modul. A 2 A 3 A 4 A 5 0 0 0 2 3 0 2 3 0 2 3 4 5 6 7 2 3 X 4 0 VA 0.9 Adressrummet ör ett givet datorsstem med snkron buss 64 kbte adressrmd och med 8 bitars databuss visas i bilden till vänster i iguren. Centralenheten genererar en VA signal ör att indikera att innehållet på adressbussen är giltigt och en R/W-signal ör att indikera läsning respektive skrivning. Som läs-/skrivminne används 2 st. RWM-moduler om vardera 8 kbte och 28 bte. Som läsminne används st. ROM-modul om 8 kbte. In- och utportar är och kan vid utökning placeras i den givna I/O-arean. Modeller av dessa moduler och portar ges också till höger i iguren. Användningen av I/O-arean kan variera rån en tillämpning till en annan. Man skall med lätthet kunna bta ut och lägga till portar. Adressavkodningen ör enheter i denna area bör därör vara indelad i två steg där det örsta steget avkodar adresser inom själva I/O-arean och det andra steget dessutom väljer ett speciikt gränssnitt. All avkodning nedan skall vara ullständig och år göras med standardgrindar INVERTERARE OCH ELLER NAND NOR XOR. VA X 6 7 R/W VA R/W R/W CS RWM 6k CS ROM 8k CS Inport CS Utport a Konstruera adressavkodningslogiken ör RWM-modulerna. b Konstruera en tvåstegs adressavkodare ör inplaceringen av ett gränssnitt IE som upptar adresserna $E0E0 och $E0E. Startadress 0000H C000H Läs-/ skrivminne RWM 8 kbte E000H DFFFH RWM 28 bte E07FH E080H I/O area E7FH E200H Läsminne ROM Slutadress BFFFH Adressbuss CS RWM R/W Databuss Indata OE Adressbuss CS ROM Databuss Utdata C Register 8-05 kbte FFFFH Databuss Databuss 39 40
4 42
2 Talsstem och binära koder 2. 2.2 2.3 2.4 2.5 2.6 a 8 0 = 000 2 b 8 0 = 8 6 c 8 0 = 000 NBCD d 8 0 = 0 EXCESS-3 e 8 0 = 00 GRAY4 a 93 0 = 00 0 2 b 93 0 = 00 00 NBCD c 93 0 = 5D 6 d 93 0 = 00 0000 EXCESS-3 d a? b c + a 434844C4D5253 b 74656B6E69736B6 c 484F47534B4F4C4 a 00 000 000. 00 000 NBCD b 000 0000 0. 00 00 NBCD 2.0 a AB 6 = 7 0 b 6 = 7 0 c 80 6 = 28 0 d C.4 6 = 225 0 e 0.68 6 = 040625 0 B3.D4 6 = 7982825 0 2. a 45 0 = 00 2 b 33 0 = 0000 2 c 8765 0 = 00.000 2 d 228 0 = 00.000 2 e 45 6 = 0000 2 33 6 = 00 2 g 4.8 6 = 00. 2 h 0.6 6 = 0000.0 2 2.2 a 255 0 = FF 6 b 330 0 = 4A 6 c 937 0 = 3.5F 6 d 3243 0 = 84.6E 6 e 0 2 = 7E 6 00000000 2 = 90A 6 g. 2 = F.F 6 h 00.00 2 = A3 6 2.3 a 52=2 9 < 360 < 256=2 8 ger minst 9 bitar b 256=2 8 < 80 < 28=2 7 ger minst 8 bitar 2.7 2.8 2.9 a 00 2 = 00000 2 b 32 0 = 00000 2 c 6 6 = 000 2 a 00 2 = 0000 2 b 32 0 = 000000 2 c 6 6 = 0000 2 a 00 2 = 43 0 b 00 2 = 03 0 c 00 2 = 60 0 d 0.0 2 = 5375 0 e. 2 = 0875 0 000.0 2 = 825 0 43 44
45 3 Switchnätalgebra 3. a b c 3.2 a b c d 3.3 a och c. 3.4 3.5 ac och d 3.6 B A 3.7 a b c e e e 46 3.8 a b c 3.9 a b c 3.0 a b c w w w w w w w w w w
3. a m 0 0 0 0 0 0 0 0 3 0 0 0 0 6 7 Mintermer: m367= b m 0 0 0 0 0 0 0 0 0 0 0 5 0 6 7 3.2 3.3 d w w w w w w w w m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Mintermer: m04= w w d a Mintermer: m567= c w w w w m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 7 0 0 0 0 0 9 0 0 0 0 0 0 3 0 4 5 Mintermer: m679345= w w w w w w w 3.4 a M 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 Matermer: M 07 = b 0 0 0 0 0 0 0 0 0 0 0 2 0 0 3 0 0 0 4 0 0 M Matermer: M 0234 = 47 48
c w w w w M 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 2 0 Matermer: M 5902 = w w w w w d w w w w w w M 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 Matermer: M 604 = w w w c w d w 00 0 0 00 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w w w w w w w e w w 00 0 0 00 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0-0 0 0 0 - - 0 0 0 0 0 w w w g w h w 00 0 0 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0-0 - 0 0 0 0 0 0 0 0 0 w w w w w w w w w w w w 3.5 3.6 e a b 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 i w j w 00 0 0 00 0 0 00 0 0 00 0 0 0 0-0 0 0 0 0 0-0 0 0 0 0 0 0 0 0 0 0 0 w w w w w w w w w w w w w w w 49 50
3.7 a b 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 Aritmetik 4. a %0000 = 85 b %0000 = 60 c %0000 = 70 d %0000 = 95 c w d w 00 0 0 00 0 0 4.2 a %0000 = 85 b %0000 = 60 c %0000 = -86 d %0000 = -6 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w w e w w 00 0 0 00 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0-0 0 0 0 - - 0 0 0 0 0 w g w h w 00 0 0 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0-0 - 0 0 0 0 0 0 0 0 0 4.3 a -0 = % -0000 00 = 00 b -38 = % -000 00 = 0 00 c -42 = % -000 00 = 0 00 d -56 = % -00 000 = 00 000 4.4 a Operation Decimalt 0 X 36 0 0 0 0 0 0 + Y + 68 + 0 0 0 0 0 0 = R 04 0 0 0 0 0 R0 Z=0 c 8 =0 C=0 Operationen innebär X=36 Y= 68 R= 04 36+68=04 Etersom talen betraktas på binärorm är talområdet 8 bitar 0-255 och således resultatet korrekt. Detta indikeras också av att C-laggan är 0. b Operation Decimalt X 88 0 0 0 + Y + 68 + 0 0 0 0 0 0 = R 0 0 0 0 0 0 0 0 0 R=0 Z= c 8 = C= Operationen innebär X=88 Y= 68 R= 0 men 88+68=256! Etersom talen betraktas på binärorm är talområdet 8 bitar 0-255 och således resultatet utanör talområdet. Carrlaggan sätts därör till dessutom blir i detta all innehållet i registret 0 varör Z-laggan också sätts till. c Operation Decimalt X 29 0 0 0 0 0 0 + Y + 29 + 0 0 0 0 0 0 = R 2 0 0 0 0 0 0 0 R0 Z=0 c 8 = C= Operationen innebär X=29 Y=29 R=2 men 29+29=258! Etersom talen betraktas på binärorm är talområdet 8 bitar 0-255 och således resultatet utanör talområdet. Carrlaggan sätts därör till resultatet i registret är dock skilt rån 0 varör Z-laggan sätts till 0. d 5 52