Grundläggande datorteknik exempelsamling

Storlek: px
Starta visningen från sidan:

Download "Grundläggande datorteknik exempelsamling"

Transkript

1 Förord: Grundläggande datorteknik eempelsamling Versioner: 7 Juni 200: Version, HT200 5 September 200: Rättelse till facit, 5.5 och September 200: Rättelse till facit, September 200: Formulering uppgift 5.7 var tvetdig, rättad. Lösning: återstår att kontrollera September 200: Rättelse till facit, September 200, numrering av uppgifter i kapitel 8 rättad 6 Oktober 200: Facit 3.6b, tet (X/Y btt plats..) rättat. 4 Oktober 200: Ntt kapitel (9 Adressavkodning) 4 November 20: Lösning upg 2.2c, 2.9c, 2.7g korrigerade Lösning till 4. September 202, lösning 4.7 korrigerad 7 September 202, kap 6,7 och 8 nu anpassade till FLIS Institutionen för Data och Informationsteknik Chalmers tekniska högskola Göteborg HT 202

2 Grundläggande datorteknik - eempelsamling Talsstem och binära koder. Utför följande talomvandlingar: a) (8) 0 = (?) 2 (8) 0 = (?) 6 c) (8) 0 = (?) NBCD d) (8) 0 = (?) EXCESS-3 e) (8) 0 = (?) GRAY(4).2 Utför följande talomvandlingar: a) (93) 0 = (?) 2 (93) 0 = (?) NBCD c) (93) 0 = (?) 6 d) (93) 0 = (?) EXCESS-3.3 Vilket, av följande alternativ är talet (54,72) 0 på naturlig binär form avrundat till 7 bråksiffror. a) ( ) 2 (00.00) 2 c) (00.00) 2 d) (00.000) 2 e) ( ) 2.4 Ange ASCII-tecknet för följande tal: a) (3F) 6 (49) 0 c) (00) 2.5 Skriv följande ASCII-kodade tetsträngar som en sekvens av headecimala kodord. a) CHALMERS tekniska c) HOGSKOLA.6 Skriv följande tal som NBCD-kod a) (528,3) 0 (407,96) 0.7 Antag 7 bitars binära tal (naturlig binärkod), där den mest signifikanta positionen är en paritetsbit. Ange de binära talen med jämn paritet (bitmönstren) för följande tal. a) (00) 2 (32) 0 c) (6) 6 Grundläggande datorteknik - eempelsamling.8 Antag 7 bitars binära tal (naturlig binärkod), där den mest signifikanta positionen är en paritetsbit. Ange de binära talen med udda paritet (bitmönstren) för följande tal. a) (00) 2 (32) 0 c) (6) 6.9 Omvandla följande tal (naturlig binär kod) till decimal form: a) (00) 2 (00) 2 c) (00) 2 d) (0.0) 2 e) (.) 2 f) (000.0) 2.0 Omvandla följande headecimala tal till decimal form: a) (AB) 6 () 6 c) (80) 6 d) (C.4) 6 e) (0.68) 6 f) (B3.D4) 6. Omvandla följande tal till naturlig binär kod. Bråken avkortas till 6 st. bråksiffror. a) (45) 0 (33) 0 c) (87,65) 0 d) (22,8) 0 e) (45) 6 f) (33) 6 g) (4.8) 6 h) (0.6) 6.2 Omvandla följande tal till headecimal form. Bråken avkortas till 2 st. bråksiffror. a) (255) 0 (330) 0 c) (9,37) 0 d) (32,43) 0 e) (0) 2 f) ( ) 2 g) (.) 2 h) (00.00) 2.3 En aels vridningsvinkel [0-359 ] ska kodas med Gra-kod. Hur många bitar måste kodorden minst ha för att ge upplösningen: a) 2 3 4

3 Grundläggande datorteknik - eempelsamling 2 Switchnätalgebra 2. Åskådliggör följande booleska uttrck med hjälp av grindsmboler (NOT, AND, OR): a) f (, z f (, e) e( c) f (, ) 2.2 Ange det booleska uttrcket för följande logiknät: a) f(, c) d) z z z z 2.3 Vilket (eller vilka) av följande booleska uttrck anger korrekt utsignalen f för nedanstående logiknät? a) f (, ( z ( z f (, ( ( c) f (, z d) f (, z z = 2.4 Antag att z och visa att z z f(, f(, f(, f (, Grundläggande datorteknik - eempelsamling 2.5 Avgör för vart och ett av följande fall om uttrcket är sant, dvs. om VL = HL: a) ( )( z z ( )( z z z c) ( ) d) ( )( ) 0 e) z z z ( )( )( 2.6 Bestäm A och B i följande logikkoppling: A B 2.7 Visa hur följande logikgrindar kan ersättas med enbart 2-ingångars NAND-grindar. a) f ( ) c) 2.8 Visa hur följande logikgrindar kan ersättas med enbart 2-ingångars NOR-grindar. a) f ( ) c) f (, ) f (, ) f (, ) f (, ) f (, ) 2.9 Realisera följande booleska funktioner med hjälp av 2-ingångars NAND-grindar. a) f (, ) f (, z c) f (, ( ) z w 2.0 Realisera följande booleska funktioner med hjälp av 2-ingångars NOR-grindar. a) f (, ) f (, z c) f (, ( ( z ) 5 6

4 Grundläggande datorteknik - eempelsamling 2. Skriv följande funktioner på disjunktiv normal form. Bestäm mintermerna med hjälp av funktionstabell och binär evaluering. a) f (, z f (, ( ( c) f (, w z d) f (, ( z( w Grundläggande datorteknik - eempelsamling 2.6 Tag fram en minimal disjunktiv form till var och en av funktionerna beskrivna av följande Karnaughdiagram: a) f z f z Vilket av följande alternativ utgör den disjunktiva normalformen av den booleska funktionen: f (, ( )(? a) z z z z z z c) z z z z d) z z z z e) z z z 2.3 Vilket av följande alternativ utgör den disjunktiva normalformen av den booleska funktionen: f (, ( )( w? a) zw zw zw zw zw zw c) zw zw zw d) zw zw zw e) zw zw zw 2.4 Skriv följande funktioner på konjunktiv normal form. Bestäm matermerna med hjälp av funktionstabell och binär evaluering. a) f (, z z f (, z c) f (, z w z d) f (, z w z w 2.5 Vilket av följande alternativ utgör den konjunktiva normalformen av den booleska funktionen: f (, ( )(? a) f (, ( z )( z )( ( f (, ( ( z )( ( c) f (, ( ( z )( ( z ) d) f (, ( z )( ( e) f (, ( ( z )( ( c) f zw d) f zw e) f zw f) f zw g) f zw h) f zw i) f zw j) f zw

5 Grundläggande datorteknik - eempelsamling 2.7 Tag fram en minimal konjunktiv form till var och en av funktionerna beskrivna av följande Karnaughdiagram: a) f z f z c) f zw d) f zw e) f zw f) f zw g) f zw h) f zw i) f zw j) f zw Grundläggande datorteknik - eempelsamling 3 Aritmetik 3. Ange decimala motsvarigheten till följande 8-bitars tal givna på binärform. a) c) 0000 d) Ange decimala motsvarigheten till följande 8-bitars tal givna på tvåkomplementsform. a) c) 0000 d) Ange följande decimala tal som 8-bitars binära tal på tvåkomplementsform. (Ledning, bestäm först binär form av talet utan minustecken, tvåkomplementera därefter) a) c) -42 d) Utför (visa med papper och penna) följande additioner (R=X+Y) av 8-bitars tal givna på binärform. Ange X,Y och R på decimal form, ange dessutom hur flaggorna C och Z påverkas av operationerna. a) X = Y= X = 000 Y= c) X = Y= d) X = Y= 0000 e) X = Y= Utför (visa med papper och penna) följande additioner (R=X+Y) av 8-bitars tal givna på tvåkomplementsform. Ange X,Y och R på decimal form, ange dessutom hur flaggorna N, V och Z påverkas av operationerna. a) X = Y = X = 000 Y = c) X = Y = d) X = Y = 0000 e) X = Y = Utför (visa med papper och penna) följande subtraktioner (R=X-Y) av 8-bitars tal givna på binärform. Ange X,Y och R på decimal form, ange dessutom hur flaggorna C och Z påverkas av operationerna. Flaggan C förutsätts vid denna operation representera en lånesiffra ( borrow ) till den mest signifikanta positionen. a) X = 00 Y = X = Y = 00 c) X = 00 Y = d) X = Y =

6 Grundläggande datorteknik - eempelsamling 3.7 Utför (visa med papper och penna) följande subtraktioner (R=X-Y) av 8-bitars tal givna på binärform. Subtraktionerna ska utföras som addition av 2-komplement, dvs. R = X + (2~Y). Ange X,Y och R på decimal form, ange dessutom hur flaggorna C och Z påverkas av operationerna. Eftersom subtraktionen utförs som addition av 2-komplement förutsätts flaggan C vid denna operation representera inversen av en lånesiffra ( borrow ) till den mest signifikanta positionen. a) X = 00 Y = X = Y = 00 c) X = 00 Y = d) X = Y = Utför (visa med papper och penna) följande subtraktioner (R=X-Y) av 8-bitars tal givna på tvåkomplementsform. Subtraktionerna ska utföras som addition av 2-komplement, dvs. R = X + (2~Y). Ange X,Y och R på decimal form, ange dessutom hur flaggorna N, V och Z påverkas av operationerna. a) X = 00 Y = X = Y = 00 c) X = 00 Y = d) X = Y = 00 e) X = Y = 0 Grundläggande datorteknik - eempelsamling 4 Kombinatoriska nät 4. Konstruera ett minimalt kombinatoriskt nät BCD-7, som konverterar ett binärt kodat decimaltal till så kallad Sju-segment kod enligt följande tabell: decimal A B C D a b c d e f g siffra En sju-segments indikator har segmenten fördelade enligt följande figur: f A B C D f BCD-7 e f d g a c b e a d c g b a) Ställ upp en funktionstabell för utsignalerna a-g. Konstruera ett minimalt kombinatoriskt nät för översättning från de decimala siffrorna 0-9, från BCD-form till indikatorn. 4.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. f 3, 2, 0 Increment u3, u2, u u0 Ställ upp funktionstabell för utsignalerna och realisera ett minimalt kombinatoriskt nät. Använd AND/OR-logik och förutsätt att även insignalernas inverser finns tillgängliga. 4.4 Ett kombinatoriskt nät Decrement, som subtraherar från ett 4-bitars tal (tvåkomplementsform) ska konstrueras. Nätet består av 4 insignaler 3, 2, och 0 samt 4 utsignaler u 3, u 2, u och u 0. f 3, 2, 0 Decrement u3, u2, u u0 Ställ upp funktionstabell för utsignalerna och realisera ett minimalt kombinatoriskt nät. Använd AND/OR-logik och förutsätt att även insignalernas inverser finns tillgängliga. 2

7 Grundläggande datorteknik - eempelsamling 4.5 Ett kombinatoriskt nät för olika tper av skiftoperationer av ett 8 bitars tal ska konstrueras. Nätets funktion beror av bitarna f och f 0 enligt följande: f f 0 funktion 0 0 Ingen operation 0 Skift vänster 0 Skift höger Aritmetiskt skift 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 8-bitars ord bit som skiftas in i vakant position 8-bitars skiftat ord bit som skiftats ut Grundläggande datorteknik - eempelsamling 5 Sekvensnät 5. I figuren visas en SR-latch jämte tidsdiagram för S-, och R- signalerna. Komplettera tidsdiagrammet med, då =0 från början. S S S R R R 3, 2,, 0,SI f f0 a) Ställ upp en funktionstabell där alla utsignaler uttrcks som insignaler eller konstanter. Realisera det kombinatoriska nätet med hjälp av av 4 väljare. 4.6 Ett logiknät som skiftar bitar flera positioner under en klockckel kallas för Barrel-shifter. Konstruera ett sådant kombinatoriskt nät för högerskift. Du har tillgång till 4 st. av 4 väljare. Insignaler: 3, 2,, 0 är det ord som skall skiftas. s, s 0 selektor, anger antal skift enligt: 00 skift 0 2 skift 0 3 skift 4 skift Utsignaler: u 3,u 2,u,u 0 är resultatet, dvs. det skiftade ordet 3, 2, 0 f -bitshift f Barrelshift u3, u2, u, u0, SO u3, u2, u u0 5.2 I figuren visas en SR-vippa jämte tidsdiagram för S-, R- och -signalerna. Komplettera tidsdiagrammet med, då =0 från början. S R S S C 5.3 I figuren visas en flanktriggad JK-vippa jämte tidsdiagram för J-, K- och -signalerna. Komplettera tidsdiagrammet med, då =0 från början. J K J J C C K R R K s s0 a) Konstruera ett kombinatoriskt nät som utför högerskift av ett 4-bitars ord. Mest signifikanta inskiftade bitar är alltid 0. Utskiftade bitar ignoreras. Konstruera ett kombinatoriskt nät som utför höger rotation av ett 4-bitars ord. Den minst signifikanta biten skiftas här till den mest signifikanta positionen. c) Konstruera ett kombinatoriskt nät som utför aritmetiskt högerskift av ett 4-bitars ord. Mest signifikanta inskiftade bitar är alltid 0. Utskiftade bitar ignoreras. 4.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.4 I figuren visas en D-vippa jämte tidsdiagram för D- och -signalerna. Komplettera tidsdiagrammet med, då =0 från början. D D D C C 4.8 **Härled uttrck för ett kombinatoriskt nät som realiserar inkrement -funktion för ett 8-bitars register. Varje utsignal ska uttrckas eplicit. 4.9 **Härled uttrck för ett kombinatoriskt nät som realiserar dekrement -funktion för ett 8-bitars register. Varje utsignal ska uttrckas eplicit. 3 4

8 Grundläggande datorteknik - eempelsamling 5.5 I figuren visas en T-vippa jämte tidsdiagram för T- och -signalerna. Komplettera tidsdiagrammet med, då =0 från början. T T T C C Grundläggande datorteknik - eempelsamling 5.8 Ställ upp funktionstabell och rita tillståndsgrafen för följande räknare med räknevillkoret. 5.6 Ställ upp funktionstabell, rita tillståndsgraf och pulsdiagram för den autonoma räknaren. Pulsdiagrammet skall utgå från tillståndet Q = ( 0 ) 2 = Ställ upp funktionstabell och rita tillståndsgrafen för följande räknare med räknevillkoret. C Analsera räknaren nedan. Utgå från initialtillståndet 0, vilken räknesekvens motsvarar räknarens tillståndsgraf? Tillstånden kodas som binärt tal: Ställ upp funktionstabell, rita tillståndsgraf och pulsdiagram för den autonoma räknaren nedan. Pulsdiagrammet skall utgå från tillståndet Q = ( 2 0 ) 2 = 0 C a) 0,,2,3,4,5,6,7,0... 0,2,4,6,7,,3,5,0... c) 0,2,4,7,6,,3,5,

9 Grundläggande datorteknik - eempelsamling 5. Analsera räknaren nedan. Visa dess fullständiga tillståndsgraf. Tillstånden kodas som binärt tal: 2 0. Grundläggande datorteknik - eempelsamling 5.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 får AND-, OR- och INVERTERAR-grindar användas. a) Vipptp: D. D D T T Vipptp: T. C C 5.5 Konstruera en snkron räknare med en strsignal, som bestämmer räknarens funktion på fö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 framgår att räknaren är reversibel dvs. den kan räkna en bestämd sekvens framåt eller bakåt. Använd T-vippor och valfria grindar. 5.6 Konstruera en snkron, reversibel räknare med en strsignal, vilken bestämmer räknarens funktion enligt: = 0: Sekvensen 000,00,0,00,0,,0,00,000 (Gra-kod) = : Sekvensen 000,00,0,,0,00,0,00,000 (Gra-kod baklänges) T-vippor och valfria grindar får användas. 5.2 En 2-bitars tillståndsmaskin illustreras av följande tillståndsgraf: =0 = Konstruera en snkron räknare som realiserar tillståndsgrafen. Använd T-vippor, AND-, ORoch INVERTERAR-grindar. 5.3 Konstruera en räknare med strsignal, som realiserar följande tillståndsgraf. Använd D-vippor, och grindarna AND, OR och INVERTERARE. Förutsätt att räknaren alltid startar i tillstånd Konstruera en snkron räknare med strsignaler och som bestämmer räknarens funktion på följande sätt: = : Räknaren försätts i tillstånd 000. = 0: = 0: Räknaren räknar enligt sekvensen 2 0 = 000,00,00,0,00,0,0,, = : Räknaren försätts i tillstånd 0. D-vippor och valfria grindar får användas. Rita också en tillståndsgraf som beskriver räknaren. 5.8 Konstruera ett 4-bitars snkront skiftregister ( ) med D- vippor enligt figuren till höger och valfria komponenter för den kombinatoriska delen. Kretsen ska ha en strsignal e (enable): e = 0: skiftregister kvarstannar i befintligt tillstånd e = : ett aritmetiskt högerskift utförs. Utskiftad bit 0 ignoreras. 2D G C2 5.9 Konstruera ett 4-bitars snkront skiftregister ( ) med D-vippor och valfria kombinatoriska komponenter. Kretsen ska ha två strsignaler e (enable) och d (direction): e = 0: skiftregister kvarstannar i befintligt tillstånd e = : ett skift utförs. d = 0: vänsterskift d = : högerskift 2D C2 G Utskiftade bitar (3 vid vänsterskift och 0 vid högerskift) placeras i en D-vippa med beteckningen c. Inskiftade bitar (0 vid vänsterskift och 3 vid högerskift) tas från D-vippa c. 7 8

10 Grundläggande datorteknik - eempelsamling 6 Dataväg ALU och minne För uppgifter i detta kapitel där ALU'n ingår gäller ALU-funktioner enligt följande tabell. funktion operation utsignaler f 3 f 2 f f 0 RTN u 7 u 6 u 5 u 4 u 3 u 2 u u 0 N Z V C U FD 6 U FE 6 U FF 6 U E U e 7 e 6 e 5 e 4 e 3 e 2 e e 0 u () D k +C in U u () (8) (7) d e d e d e d e d e d e D E U e3 2 2 e 0 0 u7 () 0 0 d e d e d e d e d e d e d e d e 0 D E U u7 () 0 0 d e d e d e D E U d5 e5 4 4 d3 e3 d e d e d e0 u7 () D+C in U u () (2) (3) D+FF 6 U u () (2) (3) 7 0 D+E+C in U u () (2) (3) 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+Cin)2k = 2-komplement E+Cin = 0-E-Cin () Z u u u u u u u u 0, dvs. Z= då samtliga bitar i register U är 0, Z=0 annars. (2) V (u d e ) (u d e ), dvs. V-flaggan sätts enligt reglerna för tvåkomplementsaritmetik (3) C = c8, dvs. carr ut från additionen av de mest signifikanta siffrorna. (4) C = utskiftad bit, dvs. bit d7 före vänsterskiftet. (5) C = utskiftad bit, dvs. bit d0 före högerskiftet. (6) V = Cin d7 före skift, dvs. sätts till om skiftet föranleder teckenbte. (7) C ettställs om D=0, C nollställs annars. (8) V ettställs om D=( )2, V nollställs annars. 6. Strsignaler för registeröverföringar: Använd figurens dataväg och ange strsignalssekvenser för följande registeröverföringar beskrivna enligt RTN. Operation (RTN) a) T A T A,R c) R T, A R T A = A R Aktiva strsignaler Grundläggande datorteknik - eempelsamling 6.2 Enkla unära operationer: Använd figurens dataväg och ange strsignalssekvenser för följande operationer. a) Nollställ innehållet i register A. 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 tabellform enligt följande: Ckel Operation (RTN) Aktiva strsignaler Använd figurens dataväg och ange en strsignalssekvens enligt fö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 6.4 Enkla minnesoperationer: Använd figurens dataväg och ange strsignalssekvenser för följande operationer. a) Kopiera innehållet på adress (0) 6 till register A. Kopiera innehållet indirekt från adress (0) 6 till register A. c) Utgå från att register A innehåller en adress och kopiera innehållet från den adressen till register A. d) Kopiera innehållet från register A till adress (0) 6. LDA OEA A 0 C C f3 f2 f f0 ALU g9 g8 (N) R g7 g6 (Z) g g0 LDR g5 g4 (V) OER LDT T ALU(N) ALU(Z) ALU(V) ALU(C) g3 g2 (C) LDCC OECC b3 b2 b b0 CC NĦ 0 ZĦ 0 VĦ 0 CĦ 0 OES LDTA MW MR Source Adress Data TA Minne I/O 9 20

11 Grundläggande datorteknik - eempelsamling 6.5 Register/minne addition. Använd figurens dataväg och ange strsignalssekvenser för operationen: A+M(4 6) A A T LDA LDT Ge svaret i tabellform enligt följande: Ckel Operation (RTN) Aktiva strsignaler Minnesaddition. Använd figurens dataväg och ange strsignalssekvenser för operationen: M(2 6)+M(3 6) M(4 6) A T LDA LDT Ge svaret i tabellform enligt följande: Ckel Operation (RTN) Aktiva strsignaler /6 bitars addition. Använd figurens dataväg och ange strsignalssekvenser för operationen: A+M(2 6):M(3 6) M(20 6) : M(2 6) A T Source Ge svaret i tabellform enligt följande: LDA LDT Ckel Operation (RTN) Aktiva strsignaler OEA OEA OEA f3 f2 ALU(N) f ALU(Z) NĦ 0 f0 ALU ALU(V) ZĦ 0 ALU(C) VĦ 0 CĦ C 2 C 3 g9 g8 (N) R g7 g6 (Z) g g0 LDR g5 g4 (V) g3 g2 (C) OER LDCC OECC b3 b2 b b0 CC f3 f2 ALU(N) f ALU(Z) NĦ 0 f0 ALU ALU(V) ZĦ 0 ALU(C) VĦ 0 CĦ C 2 C 3 g9 g8 (N) R g7 g6 (Z) g g0 LDR g5 g4 (V) g3 g2 (C) OER LDCC OECC b3 b2 b b0 CC f3 f2 ALU(N) f ALU(Z) NĦ 0 f0 ALU ALU(V) ZĦ 0 ALU(C) VĦ 0 CĦ C 2 C 3 g9 g8 (N) R g7 g6 (Z) g g0 LDR g5 g4 (V) g3 g2 (C) OER LDCC OECC b3 b2 b b0 CC OES LDTA MW MR OES LDTA MW MR OES LDTA MW MR Source Adress Data TA Minne I/O Source Adress Data TA Minne I/O Adress Data TA Minne I/O Grundläggande datorteknik - eempelsamling 7 Strenheten 7. I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 M(SP) Y; Q5 SP+ SP; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.2 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 SP- SP; Q5 Y M(SP); a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.3 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 n T; PC+ PC Q5 Y M(T+X); a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.4 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 n T; Q5 M(T+X) R; Q6 R PC; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.5 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 A R; Q5 R A; ALU(N,Z) CC(n,Z); 0 V; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 2 22

12 Grundläggande datorteknik - eempelsamling 7.6 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 (d7)a>> R; Q5 R A; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.7 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 A T Q5 (C)(M(A+Y))>> R; Q6 R M(A+Y); a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk). 7.8 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 PC TA,T; Q5 M(TA)+ R; PC+ PC; Q6 if(n=) R PC; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.9 I följande tabell visas RTN-beskrivningen för EXECUTE-sekvensen för en av FLIS-processorns instruktioner. Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 PC TA,T; Grundläggande datorteknik - eempelsamling 7. I instruktionslistan för FLIS-processorn finner vi en maskininstruktion som beskrivs enligt följande: Instruktion Adressering Operation Flaggor JMP Variant metod OP # ~ N Z V C JMP A,X Indeed 63 4 A+X PC Visa hur instruktionens EXECUTE-fas implementeras hos en FLIS-processor med fast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. 7.2 I instruktionslistan för FLIS-processorn finner vi en maskininstruktion som beskrivs enligt följande: Instruktion Adressering Operation Flaggor ROL Variant metod OP # ~ N Z V C ROL n,sp Indeed 4D 2 4 M(n+SP)<< M(n+SP) Δ Δ Δ Δ Visa hur instruktionens EXECUTE-fas implementeras hos en FLIS-processor med fast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. 7.3 I instruktionslistan för FLIS-processorn finner vi en maskininstruktion som beskrivs enligt följande: Instruktion Adressering Operation Flaggor BLT Variant metod OP # ~ N Z V C BLT Adr Relativ 2F 2 4 If (N V) = : PC+Offset PC Visa hur instruktionens EXECUTE-fas implementeras hos en FLIS-processor med fast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler. Q5 M(TA)+ R; PC+ PC; Q6 if(c+z=) R PC; a) Ange för varje tillstånd de strsignaler som är aktiva. Vad är instruktionens namn (med assemblerspråk)? 7.0 I instruktionslistan för FLIS-processorn finner vi en maskininstruktion som beskrivs enligt följande: Instruktion Adressering Operation Flaggor COM Variant metod OP # ~ N Z V C COM Adr Absolute 3A 2 4 M(Adr) ' M(Adr) Δ Δ 0 Visa hur instruktionens EXECUTE-fas implementeras hos en FLIS-processor med fast kopplad logik. Lösningen ska tdligt visa varje tillstånd med RTN beskrivning och angivande av aktiva strsignaler

13 Grundläggande datorteknik - eempelsamling 8 FLISP datorn 8. Följande figur illustrerar några fragment minne hos en FLISP-dator. I minnet finns en branch - instruktion samt dess mål indikerade. Bestäm instruktionens operand, dvs. det värde som finns lagrat på adress 5A. 0 Grundläggande datorteknik - eempelsamling 8.4 Översätt följande sekvens av assemblerdirektiv för FLIS-assemblatorn till maskinkod (assemblera programmet). Komplettera figuren så att det klart framgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på. Adress Innehåll Assemblerkod ORG $E0 FCB %0000 RMB A 5B 5C 2 OPERAND BRA Adress FCB $7A FCB a FCS ABCD 8 OPKOD Adress 8.2 Följande figur illustrerar några fragment minne hos en FLISP -dator. I minnet finns en branch - instruktion samt dess mål indikerade. Bestäm instruktionens operand, dvs. det värde som finns lagrat på adress OPKOD Adress 8.5 Översätt följande assemblerprogram för FLISP till maskinkod (assemblera programmet). Komplettera figuren så att det klart framgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på OPERAND BRA Adress Adress Innehåll Assemblerkod (disassemblering) ORG $30 Start: LDX #$0C 8.3 För vilka värden på U utförs hoppet nedan? Betrakta U som ett tal 0,255. LDA #$85 CMPA #U B(Villkor) Hopp om den villkorliga instruktionen är a) BHI e) BGT BHS f) BGE c) BLS g) BLE d) BLO h) BLT Loop: LDA,X+ STA $FC TSTA BPL Loop Stop: JMP Stop 25 26

14 Grundläggande datorteknik - eempelsamling 8.6 Översätt följande assemblerprogram för FLISP till maskinkod (assemblera programmet). Komplettera figuren så att det klart framgå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 DEC Count LDA Count BNE Loop Stop Jmp Stop Count RMB Table: FCB $0,%0,0,0 Grundläggande datorteknik - eempelsamling 8.9 Följande program finns 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 6: PSHC 62: PSHX 63: LDX #$5 65: INCA 66: PULX 67: PULC 68: PULA 69: RTS Beskriv stackens utseende, dvs. komplettera följande tabell, då programräknaren PC har följande värden: PC SP (SP) - (SP+) (SP+2) (SP+3) (SP+4) Ur en FLISP-dators minne avläser vi följande minnesinnehåll (headecimalt): 90,48,9,94,F5,24,03,EB,2,FA,2,FE Utgå i från att ett program är lagrat här med början på adress Identifiera instruktionssekvensen, dvs. disassemblera minnesinnehållet. 8.8 Ur en FLISP-dators minne avläser vi följande minnesinnehåll (headecimalt): F,7A,06,0E,A6,C4,A5,C5,24,02,F0,0,2,FE Utgå i från att ett program är lagrat här med början på adress Identifiera instruktionssekvensen, dvs. disassemblera minnesinnehållet En 8-bitars strömbrtare, DIP_SWITCH är ansluten till adress FB 6 och en displaenhet HEXDISPLAY som visar en bte i form av två headecimala siffror är ansluten till adress FC 6 i en FLISP dator. Konstruera en subrutin DipHe som läser av strömbrtaren och indikerar den minst signifikanta påslagna biten genom att skriva dess position, räknat från höger, till displaenheten. Om eempelvis bitarna 2 och 4 utgör ettställda strömbrtare ska positionen för bit 2, (dvs. 3) skrivas till displaenheten. Om ingen strömbrtare är ettställd ska siffran 0 skrivas till displaen. Speciellt gäller att smboler ska definieras och användas för absoluta adresser. 28

15 Grundläggande datorteknik - eempelsamling 8. 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 från strömbrtarna. Subrutinen ska utformas så att avläsningen och indikering görs en gång. Kontinuerlig funktion fås genom att subrutinen, oupphörligt anropas från ett huvudprogram "main". Speciellt gäller att smboler ska definieras och användas för absoluta adresser. 8.2 I simulatorn för FLIS-datorn kan man ansluta strömbrtarmodulen DIPSWITCH till en inport och sifferindikatorn 7-SEGMENT till en utport. Skriv ett program som kontinuerligt läser av två 4-bitars tal från de åtta strömbrtarna på DIPSWITCH via inporten $FB, adderar de två talen och visar summan (4 bitar) som en decimal siffra på sifferindikatorn 7-SEGMENT, ansluten till utport $FC. Från inporten läses två 4-bitars binära tal P och Q samtidigt. P finns på bit 7654 och Q på bit 320. Summan P+Q skall omvandlas till segmentkod och visas som en siffra 0-9 på sifferindikatorn. Om summan är större än nio skall ett E (ERROR) visas. Du har tillgång till en tabell med segmentkoder och följande definitioner: Error EQU $5D ; Segmentkod för E (Error) SegCode FCB,zetc ; Tabell med segmentkoder för [0,9] 8.3 Skriv en subrutin CNTONE i assemblerspråk för FLIS-processorn som räknar antalet ettor i register A. Vid återhopp skall register A innehålla antalet ettor som fanns i registret vid anropet. Om registret innehåller 5 st ettor vid anropet så skall det alltså innehålla talet % vid återhoppet. Endast register A och CC får vara förändrade vid återhopp från subrutinen. Hur skall programmet ändras om man istället vill räkna antalet nollor? 8.4 Skriv en subrutin ASCBIN i assemblerspråk för FLIS-processorn som översätter ett 7-bitars ASCII-tecken för en headecimal siffra (0-9 eller A-F) till motsvarande binära tal % %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 finnas i register A. Om innehållet i register A vid anropet ej är ASCII-tecknet för en headecimal siffra så skall talet $FF finnas i register A vid återhopp. Endast register A och CC får vara förändrade vid återhopp från subrutinen. 8.5 Skriv en subrutin, CCOUNT, i assemblerspråk för FLIS-processorn, som tar reda på hur många gånger ASCII-tecknet för bokstaven 'C' förekommer i en nollterminerad tetsträng. Vid anrop av subrutinen skall startadressen till tetsträngen finnas i X-registret och vid återhopp skall antalet C-tecken finnas 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 får vara förändrade vid återhopp från subrutinen. 8.6 Skriv en subrutin, AaCNT, i assemblerspråk för FLIS-processorn, som tar reda på hur många gånger ASCII-tecknen för bokstäverna A och a förekommer i en nollterminerad tetsträng. Vid anrop av subrutinen skall startadressen till tetsträngen finnas i X-registret och vid återhopp skall antalet ASCII-tecken finnas 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 får vara förändrade vid återhopp från subrutinen. 29 Grundläggande datorteknik - eempelsamling 8.7 Skriv en subrutin SMALLCNT i assemblerspråk fö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 finnas i X-registret. Tetsträngen avslutas med datavärdet 0. Det sökta antalet skall returneras i A-registret. För övrigt får endast CC-registret vara fö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. 8.8 I minnet i ett datorsstem med FLIS-processorn finns 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 fö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 - z. Antalet bokstäver skall finnas i A-registret vid återhopp. Vid anrop av subrutinen skall startadressen till strängen finnas i X-registret. Endast register A och CC får vara förändrade vid återhopp från subrutinen. 8.9 Skriv en subrutin PRINT i assemblerspråk för FLIS-processorn som matar ut ASCII-tecken (7 bitars ASCII lagrade som 8-bitars ord med mest signifikant bit nollställd) till en skrivare enligt följande beskrivning: - ASCII-tecknen som skall matas ut finns lagrade i minnet med första tecknet på adressen som finns i X-registret och följande tecken på ökande adresser. - Skrivarens dataingång (8 bitar) är ansluten till utport $FB på FLIS-datorn. - Skrivarens statussignal READY är ansluten till bit 7 (mest signifikant) 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 medför automatiskt att skrivaren nollställer signalen READY. - Utmatning av ASCII-tecken skall fortsätta tills ett dataord med värdet $00 läses från minnet. Dataordet med värdet $00 används som slutmarkering och skall inte matas ut till skrivaren. - Återhopp från subrutinen skall göras när utmatningen är färdig. Vid återhoppet skall samtliga interna register (utom PC) ha samma värden som vid inhoppet. - Subrutinen skall fungera även om första dataordet som läses från minnet är $00, dvs återhopp skall då ske direkt En ramp med ljusdioder, enligt figuren till höger, är ansluten till adress FC 6 i en FLISP-dator. a) Skriv en subrutin BLINK som får samtliga dioder att blinka genom att först tända och sedan släcka dom. Kontrollera funktionen genom att stega igenom subrutinen instruktionsvis. Utforma, som en n subrutin BLINKDELAY, en fördröjning så att dioderna blinkar även då programmet eekveras normalt. c) Beskriv subrutinerna BLINK och BLINKDELAY i form av flödesplaner. d) Skapa ett enkelt huvudprogram main, som kontinueraligt anropar subrutinen BLINK. 8.2 En ramp med ljusdioder, enligt figuren till höger, är ansluten till en utport med adress FC 6 i en FLISP-dator. a) Skriv en subrutin RLJUSH som får dioderna att bete sig som ett "rinnande ljus" där dioderna tänds upp en och en från vänster till höger. Kontrollera funktionen genom att stega igenom subrutinen instruktionsvis. Använd subrutinen BLINKDELAY, så att man tdligt kan se det rinnande ljuset även då programmet eekveras normalt. c) Beskriv lösningen från i form av en flödesplan. 30

16 Grundläggande datorteknik - eempelsamling 8.22 Två ramper med ljusdioder, enligt figuren till höger, är anslutna till utportarna med adress FB 6 och FC 6 i en FLISP-dator. Konstruera en subrutin RLJUSH6 som får dioderna att bete sig som ett kontinuerligt "rinnande ljus" där dioderna tänds upp en och en från vänster till höger. Efter 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 för bit 0 på adress FC 6 släckts, ska det rinnande ljuset börja om frå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 I simulatorn för FLIS-datorn kan man ansluta strömbrtarmodulen DIPSWITCH till en inport och sifferindikatorn 7-SEGMENT till en utport. Skriv ett program som läser av ett värde på strömbrtarna, visar värdet som en headecimal siffra på sifferindikatorn och sedan utför en fördröjning. Därefter skall sifferindikatorn släckas, en n fördröjning utföras och förloppet upprepas från början. Programmet som skall ha startadressen $20 beskrivs nedan. Det finns en färdig subrutin DELAYS som utför en fördröjning på s. Programmet skall i tur och ordning:. Läsa strömbrtarna på inport $FB. 2. Maska fram bit 3-0 av det inlästa värdet, som motsvarar den önskade fördröjningen i sekunder. 3. Visa detta värde som tillhör intervallet [0,$F] på sifferindikatorn på utport $FC. 4. Utföra fördröjningen. (Hoppa till DELAYS gånger). 5. Släcka sifferindikatorn. 6. Utföra fördröjningen igen. (Hoppa till DELAYs gånger). 7. Hoppa tillbaka till. Du har tillgång till en tabell med segmentkoder och följande definitioner: SegCode FCB,zetc Tabell med segmentkoder för [0,F] DELAYS EQU wwww Startadress för Dela-rutinen som utför s fördröjning 8.24 En FLIS-dator skall användas för att stra ett elektroniskt lås. I låsprogrammet skall ingå en subrutin KEYCMP som jämfö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 för FLIS-processorn som jämför de två strängarna och returnerar antal fel i A-registret. Vid anrop av subrutinen skall startadressen till den inmatade strängen finnas i X-registret och startadressen till "nckelsträngen" i Y-registret. Endast register A och CC får vara förändrade vid återhopp från subrutinen. Grundläggande datorteknik - eempelsamling 8.25 En FLIS-processor skall användas i strenheten för en maskin. Till inport $FC är ett antal givare och switchar anslutna. En operatör skall stra maskinen via switcharna. Huvudprogrammet för maskinstrningen skall utformas som en evighetsslinga där inporten läses av en gång i början på varje varv. Huvudprogrammet skall inledas med att stackpekaren först sätts till värdet $FA. Sedan skall inporten läsas av och beroende på switcharnas och givarnas värden skall en av fra olika färdiga subrutiner anropas om motsvarande villkor i tabellen nedan är uppfllt. Efter återhopp från subrutinerna eller om inget av villkoren i tabellen är uppfllt skall ett ntt varv i slingan påbörjas. Rita en flödesplan som beskriver huvud-programmet och skriv huvudprogrammet i assemblerspråk för FLIS-processorn. Huvudprogrammets startadress skall vara $20. Subrutinernas startadresser antas vara givna. Villkor Inport $FC bitnr Anropa subrutin ?????? SUB 2?? 0?? 0 SUB2 3??? 0??? SUB SUB I en strenhet för en maskin används FLIS-datorn. Ett avsnitt av strprogrammet skall läsa av värdet CASE (8 bitar), som finns på inporten $FB, och därefter utföra en av åtta olika subrutiner, SUB0-SUB7. Vilken subrutin som utförs bestäms av värdet på variabeln CASE. Om CASE = 0 utförs SUB0, om CASE = utförs SUB osv. Om CASE > 7 skall ingen av subrutinerna utföras. Adresserna till de åtta olika subrutinerna skall finnas 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 först initierar stackpekaren till $20 och sedan läser värdet som finns på inporten $FB (CASE). Därefter anropas en av subrutinerna enligt ovan om CASE < 8. Programmet utformas som en evighetsslinga. Det skall utformas som flerval och inte som upprepade tvåval. Subrutinernas headecimala startadresser skall vara 80, 67, 75, 52, 90, B9, AF och E Strenheten i en maskin innehåller en FLIS-dator. I en strsekvens skall strenheten invänta en negativ flank på en binär signal från en givare, ansluten till bit nr 3 på inport $FC. Skriv en generell subrutin NEDGE i assemblerspråk för FLIS-processorn som detekterar en negativ flank på en av bitarna på inporten $FC. Vid anrop av subrutinen skall register A innehålla numret för den bit på inport $FC som man vill undersöka. Övriga bitar på inporten $FC har okända värden. Återhopp från subrutinen skall göras så snart en negativ flank har upptäckts. Endast register CC får vara förändrat vid återhoppet. Ledning:. Tänk på att signalen från början kan ha värdet 0 eller. 2. Man kan använda en tabell med bitmasker för de 8 olika fallen (bit 0-7). Visa också hur subrutinanropet ser ut i huvudprogrammet i det aktuella fallet. Hur skall programmet ändras om man istället vill detektera en positiv flank? 8.28 Skriv en subrutin PCNT i assemblerspråk fö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 frabitars 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 finnas i X-registret. Strängen avslutas med datavärdet $FF. Det sökta antalet skall returneras i A-registret. Endast A-registret och flaggregistret får vara förändrat vid återhopp. 3 32

17 Grundläggande datorteknik - eempelsamling 8.29 Skriv en subrutin SWAP för FLIS-processorn, som bter plats på databitarna i ett block i minnet så att bitarna ersätts med i hela blocket. Vid anrop av subrutinen finns antalet 8-bitars dataord i blocket i A-registret (högst 50 st) och begnnelseadressen i X-registret. Vid återhopp från subrutinen får endast CC-registret vara förändrat Skriv en subrutin EXCHG för FLIS-processorn, som bter plats på minnesinnehållen i två lika stora minnesareor med 8-bitars dataord. Vid anrop av subrutinen finns 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 från subrutinen får endast register CC vara förändrat. 8.3 I minnet i ett datorsstem med FLIS-processorn finns ett antal 8-bitars tal med tecken lagrade i en tabell på adressen DTAB och framå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 uppfller detta skall finnas i A-registret vid återhopp. Endast register A och register CC får vara förändrade vid återhopp från subrutinen. Ledning: Man vet här vad bit 0 och 7 skall ha för värden 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 finns i X-registret vid anrop av subrutinen. Vid återhopp från subrutinen får endast CC-registret vara förändrat. Assemblerspråk för FLIS-processorn skall användas. Grundläggande datorteknik - eempelsamling 9 Adressavkodning 9. Ett datorsstem med 64 kbte adressrmd ska konstrueras. Konstruera adressavkodningen för följande: 2 kbte RWM frå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 fullständig adressavkodning Använd ofullständig adressavkodning 9.2 Ett datorsstem med 64 kbte adressrmd ska konstrueras. Konstruera adressavkodningen för följande: 4 kbte RWM frå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 fullständig adressavkodning Använd ofullständig adressavkodning 9.3 I ett datorsstem, med snkron buss, 64 kbte adressrmd och med 8 bitars databuss används en 6 kbte ROM-kapsel för att lagra program och en 2 kbte RWM-kapsel för att lagra variabler. Dessutom används en 8-bitars "three-state"-buffert som inport och ett 8-bitars register som utport. I nedanstående figur visas hur "chip-select"-avkodningen för dessa är utförd. a) Redogör fö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. Konstruktören upptäcker vid provning av sstemet att märkliga saker ibland händer vid läsning av indata från inporten. Hjälp konstruktören reda ut vad som händer. Indata Utdata A 5 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 33 34

18 Grundläggande datorteknik - eempelsamling 9.4 Ett datorsstem, med snkron buss, 64 kbte adressrmd och med 8 bitars databuss ska konstrueras. Centralenheten genererar en VA signal för att indikera att innehållet på adressbussen är giltigt och en R/W-signal för att indikera läsning respektive skrivning. Figuren nedan visar hur adressrummet ska användas (alla adresser anges på headecimal form). 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 figuren. Med tanke på framtida utbggnad skall alla moduler, som ansluts till adressbussen, vara fullständigt avkodade. Startadress 0000 Slutadress Adressbuss Adressbuss Grundläggande datorteknik - eempelsamling 9.6 I ett datorsstem, med snkron buss, 64 kbte adressrmd och med 8 bitars databuss har minneskretsar kopplats enligt figuren nedan. Primärminnet utgörs av ROM och RWM uppdelat på fra minneskapslar. a) Vad betder förkortningarna ROM och RWM? 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? A5 A4 VA VA VA VA A3 A4' A3 A4 A3' A4' 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 för de två minneskapslarna. Konstruera chip select -logiken fö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 för hela I/O arean. 9.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 figuren förutsätts CSW vara en korrekt bildad CS-signal för porten, visa hur CSW bildas. Visa även den kompletta adressavkodningslogiken. OE CS C Databuss 9.7 Föreställ dig en I/O-modul för vilken RWM-modulen till vänster i figuren nedan har stått modell, dvs. de har samma insignal- och utsignalstruktur mot en processorbuss. I I/O-modulen finns två inportar (ingångs-buffertar) och två utportar (utgångsregister) av den tp som visas till höger i figuren. Den tar upp två adresser, vilket innebär att på varje adress finns 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 fullständig. Signalerna VA respektive R/W används för att indikera giltig adress respektive läs- eller skriv- /operation. 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 35 36

19 Grundläggande datorteknik - eempelsamling 9.8 I CS-avkodningen för ett datorsstem med 6 bitars adressbuss används två st. 2 till 4 - avkodare enligt figuren. Insignalerna till avkodarna är adressbitar från adressbussen. Utsignalerna (0 7) från avkodarna används för att bilda CS-signalerna. a) Analsera kopplingen och bestäm på vilka adresser minnesmodulerna och portarna är placerade. Man vill placera en andra ROM-modul i direkt anslutning till den som redan finns. Visa CS-logiken och adressintervallet för denna modul. A 2 A 3 A 4 A Adressrummet för ett givet datorsstem, med snkron buss, 64 kbte adressrmd och med 8 bitars databuss visas i bilden till vänster i figuren. Centralenheten genererar en VA signal för att indikera att innehållet på adressbussen är giltigt och en R/W-signal fö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 figuren. Användningen av I/O-arean kan variera från en tillämpning till en annan. Man skall med lätthet kunna bta ut och lägga till portar. Adressavkodningen för enheter i denna area bör därför vara indelad i två steg där det första steget avkodar adresser inom själva I/O-arean och det andra steget dessutom väljer ett specifikt gränssnitt. All avkodning nedan skall vara fullständig och får göras med standardgrindar (INVERTERARE, OCH, ELLER, NAND, NOR, XOR). a) Konstruera adressavkodningslogiken för RWM-modulerna. Konstruera en tvåstegs adressavkodare för inplaceringen av ett gränssnitt IE som upptar adresserna $E0E0 och $E0E. Startadress 0000H C000H 2 3 X 4 0 VA Läs-/ skrivminne (RWM) VA X 6 7 R/W VA R/W R/W Slutadress BFFFH 8 kbte E000H DFFFH RWM 28 bte E07FH E080H I/O area E7FH E200H Läsminne (ROM) CS Adressbuss RWM R/W OE CS RWM (6k) Databuss Indata CS ROM (8k) CS Inport CS Utport CS Adressbuss ROM Databuss Utdata C Register Lösningsförslag 38 Talsstem och binära koder a) (8) 0 = (000) 2 (8) 0 = (8) 6 c) (8) 0 = (000) NBCD d) (8) 0 = (0) EXCESS-3 e) (8) 0 = (00) GRAY(4) a) (93) 0 = (00 0) 2 (93) 0 = (00 00) NBCD c) (93) 0 = (5D) 6 d) (93) 0 = ( ) EXCESS-3 d) a)? c) + a) 43,48,4,4C,4D,52,53 74,65,6B,6E,69,73,6B,6 c) 48,4F,47,53,4B,4F,4C,4 a) ( ) NBCD ( ) NBCD a) (00) 2 = (00000) 2 (32) 0 = (00000) 2 c) (6) 6 = (000) 2 a) (00) 2 = (0000) 2 (32) 0 = (000000) 2 c) (6) 6 = (0000) 2 a) (00) 2 = (43) 0 (00) 2 = (03) 0 c) (00) 2 = (60) 0 d) (0.0) 2 = (5,375) 0 e) (.) 2 = (0,875) 0 f) (000.0) 2 = (8,25) 0 (8-0,5) kbte FFFFH Databuss Databuss 37 38

20 Lösningsförslag 39.0 a) (AB) 6 = (7) 0 () 6 = (7) 0 c) (80) 6 = (28) 0 d) (C.4) 6 = (2,25) 0 e) (0.68) 6 = (0,40625) 0 f) (B3.D4) 6 = (79,82825) 0. a) (45) 0 = (00) 2 (33) 0 = (0000) 2 c) (87,65) 0 = (00.000) 2 d) (22,8) 0 = (00.000) 2 e) (45) 6 = (0000) 2 f) (33) 6 = (00) 2 g) (4.8) 6 = (00.) 2 h) (0.6) 6 = (0000.0) 2.2 a) (255) 0 = (FF) 6 (330) 0 = (4A) 6 c) (9,37) 0 = (3.5F) 6 d) (32,43) 0 = (84.6E) 6 e) (0) 2 = (7E) 6 f) ( ) 2 = (90A) 6 g) (.) 2 = (F.F) 6 h) (00.00) 2 = (A3) 6.3 a) 52=2 9 < 360 < 256=2 8 ger minst 9 bitar 256=2 8 < 80 < 28=2 7 ger minst 8 bitar Lösningsförslag 40 2 Switchnätalgebra a) z c) a) f (, z ) z f (, z c) f (, z d) f (, ( ) z a) och c). e z f (, e) e( f (, z f (, ) a),c) och d) A, B a) f ( ) ( ) c) f (, ) ( ) f (, ) ( ) 39 40

21 Lösningsförslag a) f ( ) ( ) f (, ) ( ) c) f (, ) ( ) Lösningsförslag a) z z f (, z m Mintermer: m(,3,6,7)= z z z z a) z c) z a) z c) z w w f (, ) f (, z z z f (, ) f (, z z z ( z ( ) ( f (, ( ) z w z w f (, ( ( z ) ( ( z ) ( ( z ) ( z ( ) z z z z f (, ( ( m Mintermer: m(,5,6,7)= z z z z c) z w w z f (, w z m Mintermer: m(6,7,9,,3,4,5)= zw zw zw zw zw zw zw 4 42

22 Lösningsförslag d) z w z w w z zw w z f (, ( z( w Mintermer: m(0,4)= zw zw d) a) a) z z z f (, z z M Matermer: M (0,7) = ( ( z z f (, ( M Matermer: M (0,,2,3,4) = ( ( ( ( ( m Lösningsförslag 44 c) z w z w z f (, z w z M Matermer: M (5,9,0,,2) = ( z ( z ( z ( z ( z d) z w z w z w f (, z w z w M Matermer: M (6,0,4) = ( z ( z ( z e) a) f z f z f (, z f (, z z z 43 44

23 Lösningsförslag 45 c) f zw d) f zw f (, w zw f (, w w w Lösningsförslag a) f z f z f (, z f (, ( ( c) f zw d) f zw e) f zw f) f zw f (, w(,,, f (, f (, zw e) f zw f) f zw g) f zw h) f zw f (,,,, f (, z w z w f (, z w zw zw zw z w zw ( z ( z i) f zw j) f zw f (, f (, zw zw zw z w zw zw zw zw zw z( z( z w z( g) f zw h) f zw ,,,,,, 45 46

24 Lösningsförslag 47 3 Aritmetik 3. a) %0000 = 85 %0000 = 60 c) %0000 = 70 d) %0000 = a) %0000 = 85 %0000 = 60 c) %0000 = -86 d) %0000 = a) -0 = % -( ) = = % -(000 00) = 0 00 c) -42 = % -(000 00) = 0 00 d) -56 = % -(00 000) = a) 0 X Y = R R 0 Z=0 c 8 =0 C=0 Operationen innebär X=36, Y= 68, R= 04, (36+68=04) Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C-flaggan är 0. X Y = R R=0 Z= c 8 = C= Operationen innebär X=88, Y= 68, R= 0, men 88+68=256! Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet utanför talområdet. Carrflaggan sätts därför till, dessutom blir i detta fall innehållet i registret 0 varför Z-flaggan också sätts till. c) X Y = R R 0 Z=0 c 8 = C= Operationen innebär X=29, Y=29, R=2, men 29+29=258! Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet utanför talområdet. Carrflaggan sätts därför till, resultatet i registret är dock skilt från 0 varför Z-flaggan sätts till 0. Lösningsförslag 48 d) 0 X Y = R 27 0 R 0 Z=0 c 8 =0 C=0 Operationen innebär X=74, Y=53, R=27. Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C-flaggan är 0. e) 0 X Y = R R 0 Z=0 c 8 =0 C=0 Operationen innebär X=74, Y=74, R=48. Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C-flaggan är a) 0 X Y = R R 0 Z=0 N=r 7 =0 r r =0 V=0 Operationen innebär X=36, Y= 68, R= 04, (36+68=04). Eftersom talen betraktas på tvåkomplementsform är talområdet (8 bitar) och således resultatet korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z-flaggan till 0. X Y = R R=0 Z= N=r 7 =0 r r =0 V=0 Operationen innebär X=-68, Y= 68, R= 0,(-68+68=0). Eftersom talen betraktas på tvåkomplementsform är talområdet (8 bitar) och således resultatet inom talområdet. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0, dessutom blir i detta fall innehållet i registret 0 varför Z-flaggan sätts till

25 Lösningsförslag 49 c) X Y = R R 0 Z=0 N=r 7 =0 r r = V= Operationen innebär X=-27, Y=-27, R= 2 men = Eftersom talen betraktas på tvåkomplementsform är talområdet (8 bitar) och således resultatet utanför talområdet. Av teckenöverläggningen (två negativa tal adderas men resultatet blir positivt) ser vi att V-flaggan sätts till som indikator på spillet. Resultatet är skilt från 0 varför Z-flaggan sätts till 0. d) 0 X Y = R 27 0 R 0 Z=0 N=r 7 =0 r r =0 V=0 Operationen innebär X=74, Y= 53, R= 27, (74+53=27). Eftersom talen betraktas på tvåkomplementsform är talområdet (8 bitar) och således resultatet korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z-flaggan till 0. e) 0 X Y = R R 0 Z=0 N=r 7 = r r = V= Operationen innebär X=74, Y=74, R= -08, resultatet är alltså fel. Talen betraktas på tvåkomplementsform och talområdet (8 bitar) är och således resultatet inom talområdet. Av teckenöverläggningen (två positiva tal adderas men resultatet blir negativt) ser vi dock att V-flaggan sätts till som indikator på spillet. Resultatet är skilt från 0 varför Z-flaggan sätts till a) 00 X Y = R C=B=c 8 =0 Z=0 Operationen innebär X=26, Y=80, R=46. Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C-flaggan är 0, dvs. ingen lånesiffra genereras från position c 8. Lösningsförslag X Y = R a) C=B=c 8 = Z=0 Operationen innebär X=80, Y=26, R=20. Resultatet är uppenbarligen fel eftersom negativa tal inte kan representeras av talområdet. (Eftersom talen betraktas på binärform är talområdet 0-255). Detta indikeras också av att C-flaggan är, dvs. lånesiffra genereras från position c 8. c) 00 X Y = R C=B=c 8 =0 Z=0 Operationen innebär X=222, Y=34, R=88. Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C-flaggan är 0, dvs. ingen lånesiffra genereras från position c 8. d) X Y = R C=B=c 8 = Z=0 Operationen innebär X=34, Y=222, R=68. Resultatet är fel eftersom negativa tal inte kan representeras av talområdet. (Eftersom talen betraktas på binärform är talområdet 0-255). Detta indikeras också av att C-flaggan är, dvs. lånesiffra genereras från position c 8. X ~Y = R c 8 = C=B=0 Z=0 Det gäller att X=26, Y=80, korrekt resultat R=46. Operationen innebär X=26, 2~Y=76, R=46 eftersom talen betraktas på binärform med talområdet och alltså är resultatet korrekt. Detta indikeras också av att C-flaggan är 0, dvs. minnessiffran i position c 8 är. 0 X ~Y = R c 8 =0 C=B= Z=0 Det gäller att X=80, Y=26, korrekt resultat R=-46. Operationen innebär X=80, 2~Y=30, R=20. Resultatet är uppenbarligen fel eftersom negativa tal inte kan representeras av talområdet. (Eftersom talen betraktas på binärform är talområdet 0-255). Detta indikeras också av att C-flaggan är, dvs. minnessiffran i position c 8 är

26 Lösningsförslag 5 c) X ~Y = R a) c 8 = C=B=0 Z=0 Det gäller att X=222, Y=34, korrekt resultat R=88. Operationen innebär X=222, 2~Y=222, R=88. Eftersom talen betraktas på binärform är talområdet (8 bitar) och således resultatet korrekt. Detta indikeras också av att C- flaggan är 0, dvs. minnessiffran i position c 8 är. d) 0 X ~Y = R C=B=c 8 = Z=0 Det gäller att X=34, Y=222, korrekt resultat R=-88. Operationen innebär X=34, 2~Y=34, R=68. Resultatet är fel eftersom negativa tal inte kan representeras av talområdet. (Eftersom talen betraktas på binärform är talområdet 0-255). Detta indikeras också av att C-flaggan är, dvs. minnessiffran i position c 8 är 0. X ~Y = R R 0 Z=0 N=r 7 =0 r r =0 V=0 Det gäller att X=26, Y=80, korrekt resultat R=46. Operationen innebär X=26, 2~Y=-80, R=46. Eftersom talen betraktas på tvåkomplementsform är talområdet (8 bitar) och operationens resultat korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z- flaggan till 0. Lösningsförslag 52 c) X ~Y = R R 0 Z=0 N=r 7 = r r =0 V=0 Det gäller att X=-34, Y=34, korrekt resultat R=-68. Operationen innebär X=-34, 2~Y=-34, R=-68. Operationens resultat är korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z-flaggan till 0. d) 0 X ~Y = R R 0 Z=0 N=r 7 = r r =0 V=0 Det gäller att X=34, Y=-34, korrekt resultat R=68. Operationen innebär X=34, 2~Y=34, R=68. Operationens resultat är korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z-flaggan till 0. e) 0 X ~Y = R R 0 Z=0 N=r 7 = r r = V= Det gäller att X=64, Y=-65, korrekt resultat R=29. Operationen innebär X=64, 2~Y=65, R=-27. Operationens resultat är fel. Av teckenöverläggningen (två positiva tal adderas men resultatet blir negativt) ser vi att V-flaggan sätts till som indikator på spillet. Resultatet är skilt från 0 varför Z-flaggan sätts till 0. 0 X ~Y = R R 0 Z=0 N=r 7 = r r =0 V=0 Det gäller att X=80, Y=26, korrekt resultat R=-46. Operationen innebär X=80, 2~Y=-26, R=-46. Operationens resultat är korrekt. Inget spill alltså och av teckenöverläggningen ser vi hur V-flaggan sätts till 0. Resultatet är skilt från 0 och därmed sätts Z-flaggan till

27 Lösningsförslag 53 4 Kombinatoriska nät 4. Skapa funktionerna: a,b,c,d,e,f,g och minimera med Karnaughdiagram: a CD b CD AB AB c CD d CD AB AB e CD f CD AB AB g CD Sammanfattningsvis: Lösningsförslag Funktionstabell för 4-bitars INCREMENT : u3 u2 u u u 3 0 u u u u 0 u u u AB

28 Lösningsförslag Funktionstabell för 4-bitars DECREMENT : u3 u2 u u Lösningsförslag a) f f0 7 f f0 u7 u6 u5 u4 u3 u2 u u0 SO SI 7 0 SI SI 7 u f f u f f u f f u SI f f f f f u 3 0 u 2 0 f0 f0 f0 f0 f u 3 u 2 u u 0 SO a) s s s s s s s s u u u 3 u 2 u u 0 u 0 u s s s s s s s s c) 3 u u u u s s s s s s s s u 0 0 u0 0 u u 2 u u 0 är selektorvariabel: = är selektorvariabel: z är selektorvariabel: z 0 f 0 f Totalt grind Totalt 3 grindar z Totalt 5 grindar 55 56

29 Lösningsförslag 57 5 Sekvensnät Lösningsförslag C S R S 5.7 T 2 = 0 ' + ' T = 2 T 0 = R C J K C 5.8 T 2 = 0 + ' 0 ' ' T = 0 + ' 0 ' T 0 = 5.4 D C 5.5 T C 2 0 T 2 T T X=0 X= 0 X=0 X= 0 X= X=0 00 X=0 X= X= X=0 000 X=0 X= 00 X= X=0 00 X= X=

30 Lösningsförslag 59 Lösningsförslag = ' 0 ' + ' + 0 ' + = X= X= X=0 0 X= Alternativ a) För D-vippor gäller att nästa tillstånd ( + ) är lika med D-värdet före klockningen. Därför skall D-värdet för varje D-vippa väljas till motsvarande + -värde, vilket också framgår av tillståndstabellen T T T 0 T D D 2 D D D D D D D 3 2

31 Lösningsförslag 6 Lösningsförslag Realisering med D-vippor: D D D C C C T T = = T C T C T T 2 T T T T T T T Realisering med T-vippor T T T C T C T C T 2 T T T 2 0 T T = = = T T T C C C

32 Lösningsförslag D D D Lösningsförslag 64 6 Dataväg ALU och minne 6. Operation (RTN) Aktiva strsignaler a) T A LD A,OE T T A,R LD A, LD R, OE T c) R T, A R T A = A R ) OE R, LD T 2) OE A, LD R 3) OE T, LD A 6.2 a) Ckel Operation (RTN) Aktiva strsignaler 0 R LD R 2 R A OE R, LD A eller... 0 A Source = 0; OE S, LD A Ckel Operation (RTN) Aktiva strsignaler A+ R OE A, F(,0,0,), C in, LD R 2 R A OE R, LD A c) Ckel Operation (RTN) Aktiva strsignaler ~A R OE A, F(0,,0,), LD R 2 R A OE R, LD A d) Ckel Operation (RTN) Aktiva strsignaler 2~A R OE A, F(0,,0,), C in, LD R 2 R A OE R, LD A Ckel Operation (RTN) Aktiva strsignaler 20 6 A Source=20; LD A 2 A- R F(,0,,0); OE A; LD R 3 R A OE R; LD A 4 F0 6 T Source=F0; LD T 5 A T R F(,0,0,0); OE A; LD R 6 R A OE R; LD A a) Ckel Operation (RTN) Aktiva strsignaler 06 TA Source = 0 6 ; OE S ; LD TA 2 (TA) A MR; LD A Ckel Operation (RTN) Aktiva strsignaler 06 TA Source = (0) 6 ; OE S ; LD TA 2 (TA) TA MR; LD TA 3 (TA) A MR; LD A c) Ckel Operation (RTN) Aktiva strsignaler A TA OE A ; LD TA 2 (TA) A MR; LD A d) Ckel Operation (RTN) Aktiva strsignaler 06 TA Source = 0 6 ; OE S ; LD TA 2 A (TA) MW; OE A 63 64

33 Lösningsförslag Ckel Operation (RTN) Aktiva strsignaler 4 6 TA Src=4 6; OE S; LD TA 2 M(TA) T MR; LD T 3 A+T R OE A; f 3; f ; f 0; LD R 4 R A OE R; LD A 6.6 Ckel Operation (RTN) Aktiva strsignaler 3 6 TA Src=3 6; OE S; LD TA 2 M(TA) T MR; LD T TA Src=2 6; OE S; LD TA 4 M(TA)+T R MR; f 3; f ; f 0; LD R TA Src=4 6; OE S; LD TA 6 R M(TA) OE R; MW Lösningsförslag 66 7 Strenheten 7. a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 M(SP) Y; LD Y; g 2;MR Q 5 SP+ SP; INC SP; NF Instruktionen är PULY 7.2 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 SP- SP; DEC SP Q 5 Y M(SP); OE Y; g 2; MW; NF Instruktionen är PSHY 6.7 Ckel Operation (RTN) Aktiva strsignaler 3 6 TA Src=3 6; OE S; LD TA 2 M(TA) T MR; LD T 3 A+T R ALU(N,V,Z,C) CC OE A; f 3; f ; f 0; LD R; LD CC TA Src=2 6; OE S; LD TA 5 R M(TA) OE R; MW TA Src=2 6; OE S; LD TA 7 M(TA)+C R MR; f 3; f 0; g ; LD R TA Src=20 6; OE S; LD TA 9 R M(TA) OE R; MW 7.3 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 n T; PC+ PC MR; LD T; INC PC Q 5 Y M(T+X); OE Y; MW; g 3; g 2; NF Instruktionen är STY n,x 7.4 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 n T; MR; LD T; Q 5 M(T+X) R; OE X; f 3;f ; f 0;LD R; Q 6 R PC; OE R; LD PC; NF Instruktionen är JMP n,x 7.5 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 A R; OE A; f 2;f 0;LD R; ALU(N,Z) CC(n,Z); 0 V; Instruktionen är COMA g 5; g 3; g 2; LD CC Q 5 R A; OE R; LD A; NF 7.6 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 (d7)a>> R; OE A; f 3;f 2;f ; f 0;LD R; LD CC Q 5 R A; OE R; LD A; NF Instruktionen är ASRA 65 66

34 Lösningsförslag a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 A T OE A; LD T Q 5 (C)(M(A+Y))>> R; MR; g 3; f 3;f 2;f ; g ;LD R; LD CC Q 6 R M(A+Y); OE R; MW; g 3; NF Instruktionen är ROR A,Y 7.8 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 PC TA,T; OE PC; LD TA; LD T Q 5 M(TA)+ R; PC+ PC; MR; f 3;f ;f 0; g 0;LD R; INC PC Q 6 if(n=) R PC; OE R; LD PC=N; NF Instruktionen är BMI Adr Lösningsförslag Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 n T; PC+ PC MR; LDT; INC PC Q 5 M(A+Y)>>(C) R; MR; g 2; f 3;f 2;f 0; g ;LD R; ALU(N,V,Z,C) CC(N,V,Z,C) LD CC; Q 6 R M(A+Y); OE R; MW; g 2; NF 7.3 Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 PC TA,T; OE PC; LD TA;LD T Q 5 M(TA)+ R; PC+ PC; MR; f 3;f ;f 0; g 0;LD R; INC PC Q 6 if(n V=) R PC; OE R; LD PC=N Z; NF 7.9 a) Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q 4 PC TA,T; OE PC; LD TA; LD T Q 5 M(TA)+ R; PC+ PC; MR; f 3;f ;f 0; g 0;LD R; INC PC Q 6 if(c+z=) R PC; OE R; LD PC=C+Z; NF Instruktionen är BLS Adr 7.0 Tillstånd RTN-beskrivning Aktiva strsignaler (=) Q4 M(PC) TA; PC+ PC; MR; LD TA; INC PC; Q5 M(TA) R; MR; g 4; f 2;f 0;LD R; ALU(N,Z) CC(n,Z); 0 V; g 5; g 3; g 2; LD CC Q6 R M(TA); OE R; MW; g 4; NF 7. Tillstånd RTN-beskrivning Aktiva strsignaler (=) 0 A T; OE A; LD T; M(T+X) R; OE X; f 3;f ; f 0;LD R; 2 R PC; OE R; LD PC; NF 67 68

35 Lösningsförslag 69 8 FLISP datorn 8. OPERAND = Adress (PC+2) = 8 (59+2) = 26 (Alla adressvärden på headecimal form) 8.2 OPERAND = Adress (PC+2) = 0 (62+2) = AC (Alla adressvärden på headecimal form) 8.3 LDAA #$85 ; Talet (85) 6 till A CMPA #U ; Bilda (85) 6 - U B(Villkor) Hopp Lösningsförslag Adress Innehåll Assemblerkod (disassemblering) ORG $ Start: LDX #$0C 3 0C 32 F5 Loop: LDA,X+ 33 E STA $FC 34 FC TSTA BPL Loop 37 FA Stop: JMP Stop Storleksjämförelse görs alltså mellan (85) 6 = (33) 0 och U. Alla hoppvillkoren i uppgifter a,b,c och d avser tal utan inbggt tecken. För 8-bitars tal utan inbggt tecken gäller: 0 U Om det villkorliga hoppet är: a) BHI (Higher) utförs hoppet om 33 U, dvs U 33 Svar: 0 U 33 BHS (Higher or Same) utförs hoppet om 33 U, dvs U 33 Svar: 0 U 33 c) BLS (Lower or Same) utförs hoppet om 33 U, dvs U 33 Svar: 33 U 255 d) BLO (Lower) utförs hoppet om 33 U, dvs U 33 Svar: 33 U 255 Alla hoppvillkoren i uppgifter e,f,g och h avser tal med inbggt tecken (2-komplementrepresentation). För 8-bitars tal med inbggt tecken (2-komplementrepresentation) gäller: -28 U +27 Talet (85) 6 tolkas som det negativa talet -(00-85) 6 = -(7B) 6 = -(23) 0 Om det villkorliga hoppet är: e) BGT (Greater Than) utförs hoppet om -23 U, dvs U -23 U skall alltså tillhöra intervallet [-28, -23) Svar: 28 U 33 f) BGE (Greater or Eual) utförs hoppet om -23 U, dvs U -23 U skall alltså tillhöra intervallet [-28, -23] Svar: 28 U 33 g) BLE (Less or Eual) utförs hoppet om -23 U, dvs U -23 U skall alltså tillhöra intervallet [-23, +27] Svar: 0 U 27 eller 33 U 255 h) BLT (Less Than) utförs hoppet om -23 Y, dvs U -23 U skall alltså tillhöra intervallet (-23, +27] Svar: 0 U 27 eller 33 U 255 Adress Innehåll Assemblerkod (disassemblering) ORG $E0 E0 87 FCB %0000 E?? RMB 2 E2?? E3 7A FCB $7A 8.6: Adress Innehåll Assemblerkod (disassemblering) ORG $20 Length: EQU Start: LDX #Table F LDA Length E STA Count F5 Loop: LDA,X+ 27 E STA $FC 28 FC DEC Count 2A 3 2B F LDA Count 2C 3 2D 25 BNE Loop 2E F7 2F 33 Stop Jmp Stop 30 2F 3?? Count RMB 32 0 Table: FCB $0,%0,0, A E4 6 FCB a E5 4 FCS ABCD E6 42 E7 43 E

36 Lösningsförslag 7 8.7: 20: LDX #start 22: LDY #dest 24: L: LDA,X+ 25: BEQ L2 27: STA,Y+ 28: BRA L 2A: L2: BRA L : LDA $7A 22: NEGA 23: RORA 24: ADDA $C4 26: ADCA $C5 28: BEQ L2 2A: LDA # 2C: L2: BRA L2 Lösningsförslag 72 ; Huvudprogram BOS: EQU $20 INPORT: EQU $FB UTPORT: EQU $FC Error : EQU $5D ; Felkod (E) ORG $20 START : LDX #SegCode ; Segmenttabell för 7-segmentdispla LOOP: LDA INPORT ; Läs inport $FD STA TEMP ; Skapa kopia ANDA #$0F ; Maska bort bit 4-7 STA LNIB ; Lagra låg nibble i minnet LDA TEMP ; Hämta tillbaka kopian LSRA ; Placera bit7-4 till höger i A-reg LSRA LSRA LSRA ADDA LNIB ; Addera nibblar 8.9 PC SP F0 EF EB EA EB EF (SP) (SP+) (SP+2) (SP+3) (SP+4) CMPA #$09 ; >9? BHI ERROR ; Ja! Visa feltecken på displa LDA A,X ; Nej, visa summasiffra på displa STA UTPORT BRA LOOP ; Nästa varv ERROR: LDA #Error ; Felkod STA UTPORT BRA LOOP ; Nästa varv TEMP: RMB ; Plats för kopia av A LNIB: RMB ; Plats för nibblekopia 8.0 ; Smboliska adresser DipSwitch: EQU $FB HeDisp: EQU $FC SegCode: FCB $77,$22,$5B,$6B,$2E,$6D,$7D,$23,$7F,$6F ORG $FF FCB START ; RESET-vektor ; Subrutin DipHe DipHe: LDA DipSwitch LDX #0 DipHe0: TSTA BEQ DipHe20 LEAX,X LSRA BCC DipHe0 DipHe20: STX HeDisp RTS 8.: DipSwitch: EQU $FB DipSwitch2: EQU $FC LedDispla: EQU $FB main: JSR DipSwitchOr BRA main DipSwitchOr: LDA DipSwitch ORA DipSwitch2 STA LedDispla RTS ; Subrutin CNTONE CNTONE: CLR COUNT ; Nolla -räknare CTLOOP: TSTA ; Reg A tomt? BEQ CNTOUT ; Ja, återvänd LSLA ; Nej, skifta ut bit i carr BCC CTLOOP ; Carr=0? Ja, fortsätt INC COUNT ; Carr=, öka -räknare BRA CTLOOP ; Fortsätt CNTOUT: LDA COUNT ; Läs av räknare RTS COUNT : RMB ; Plats för -räknare 72

37 Lösningsförslag ; Subrutin ASCBIN ASCBIN: ANDA #$7F ;Maska bort bit 7 SUBA #$30 ;Justera för siffror 0-9 BLO ASCERR ;Ej siffra. Fel CMPA #9 ;Siffra 0-9? BLS ASCOK ;Ja, återhopp SUBA #7 ;Nej, justera för siffra A-F CMPA #0 ;Siffra A-F? BLO ASCERR ;Nej. Fel CMPA #5 ;Siffra A-F? BLS ASCOK ;Ja, återhopp ASCERR: LDA #$FF ;Ej siffra, sätt felflagga ASCOK : RTS 8.5 ; Subrutin CCOUNT CCOUNT: PSHX ;Spara register på stack CLR COUNT ;Nollställ "C"-räknare CCLOOP: LDA,X+ ;Hämta data från tetsträng BEQ CCEXIT ;Strängslut ANDA #$7F ;Nej, maska bort bit 7 CMPA #'C' ;Testa om "C" BNE CCLOOP ;Nej, fortsätt med nästa INC COUNT ;Ja, öka "C"-räknare BRA CCLOOP ;Fortsätt med nästa CCEXIT: LDA COUNT ;Hämta resultat PULX ;Återställ register RTS COUNT : RMB ;Räknare för "C" 8.6 ; Subrutin AaCNT AaCNT : PSHX ;Spara register på stack CLR COUNT ;Nollställ "Aa"-räknare AaLOOP: LDA,X+ ;Hämta data från tetsträng BEQ AaEXIT ;Strängslut ANDA #$7F ;Nej, maska bort bit 7 (paritetsbit) ORA #$20 ;Gör om till liten bokstav (ettställ bit 5) CMPA #'a' ;Testa om "a" BNE AaLOOP ;Nej, fortsätt med nästa INC COUNT ;Ja, öka "Aa"-räknare BRA AaLOOP ;Fortsätt med nästa AaEXIT: LDA COUNT ;Hämta resultat PULX ;Återställ register RTS COUNT : RMB ;Plats för räknare Lösningsförslag ; Subrutin SMALLCNT SMALLCNT: PSHX ;Spara register på stack CLR COUNT ;Nollställ bokstavsräknare SCLOOP: LDA,X+ ;Hämta data från tetsträng BEQ SCEXIT ;Strängslut ANDA #$7F ;Nej, maska bort bit 7 CMPA #'a' ;Testa om "a" BLO SCLOOP ;Ej liten bokstav, fortsätt med nästa CMPA #'z' ;Testa om "z" BHI SCLOOP ;Ej liten bokstav, fortsätt med nästa INC COUNT ;Ja, öka bokstavsräknare BRA SCLOOP ;Fortsätt med nästa SCEXIT: LDA COUNT ;Hämta resultat PULX ;Återställ register RTS COUNT : RMB ;Bokstavsräknare 8.8 ; Subrutin LCOUNT LCOUNT: PSHX ;Spara register på stack CLR COUNT ;Nollställ bokstavsräknare LLOOP: LDA,X+ ;Hämta data från tetsträng BEQ LEXIT ;Strängslut ANDA #$7F ;Nej, maska bort bit 7 ORA #$20 ;Ettställ bit 5. (Stora bokstäver -> små) CMPA #'a' ;Testa om "a" BLO LLOOP ;Ej liten bokstav, fortsätt med nästa CMPA #'z' ;Testa om "z" BHI LLOOP ;Ej liten bokstav, fortsätt med nästa INC COUNT ;Ja, öka bokstavsräknare BRA LLOOP ;Fortsätt med nästa LEXIT : LDA COUNT ;Hämta resultat PULX ;Återställ register RTS COUNT : RMB ;Plats för bokstavsräknare 8.9 * Subrutin PRINT PRINT: PSHA ;Spara register på stack PSHX PLOOP: LDA,X+ ;Hämta data från tetsträng BEQ PREXIT ;Strängslut ANDA #$7F ;Nej, maska bort ev bit 7 WAIT: TST STATUS ;Vänta tills skrivaren redo. Bit 7 (N-flaggan=0?) BPL WAIT ;Ja, vänta tills N = STA UTPORT BRA PLOOP PREXIT: PULX ;Återställ register PULA RTS 73 74

38 Lösningsförslag uppgift d) LedDispla: EQU $FC ORG $20 main: JSR Blink BRA main ; uppgift a) Blink: LDA #$FF STA LedDispla JSR BLINKDELAY LDA #0 STA LedDispla JSR BLINKDELAY BRA Blink Lösningsförslag ; Subrutin RLJUSH6 LedHigh: EQU $FB LedLow: EQU $FC RLJUSH6: LDA #$80 CLR TMP RLJUSH6_: LDX TMP STX LedLow STA LedHigh JSR BLINKDELAY RORA ROR TMP BCS RLJUSH6 BRA RLJUSH6_ TMP: RMB ; uppgift BLINKDELAY: BLINKDELAY: ; uppgift c) LDX #$200 LEAX -,X X #0 BNE BLINKDELAY RTS 8.23 ; Huvudprogram BOS: EQU $20 INPORT: EQU $FB UTPORT: EQU $FC ORG $20 START: LDSP #BOS LDX #SegCode ;Segmenttabell för 7-segmentdispla LOOP: LDA INPORT ; Läs inport $FB ANDA #$0F ; Maska bort bit 4-7 STA COPY ; Spara kopia av avläst värde LDA A,X ; Hämta segmentkod för hesiffra STA UTPORT ; Visa hesiffra på 7-segmentdispla LDA COPY ; Hämta tillbaka sparad kopia JSR DELAY ; Vänta ett antal sekunder som bestäms av A-reg CLR UTPORT ; Släck displa JSR DELAY ; Vänta ett antal sekunder som bestäms av A-reg BRA LOOP ; Upprepa 8.2: a) LedDispla: EQU $FC RLJUSH: LDA #$80 RLJUSH: STA LedDispla JSR BLINKDELAY RORA BCS RLJUSH BRA RLJUSH c) COPY: RMB ; Plats för kopia SegCode: FCB $77,$22,$5B,$6B,$2E FCB $6D,$7D,$23,$7F,$6F FCB $3F,$7C,$55,$7A,$5D,$D ORG $FF FCB START ; RESET-vektor 8.24 ; Subrutin KEYCMP som jämför två strängar och returnerar antal fel KEYCMP: PSHX ;Spara register på stack PSHY CLR ERRNUM ;Nollställ felräknare KLOOP: LDA,X+ ;Hämta data från "User string" BEQ KEXIT ;Strängslut ANDA #$7F ;Maska bort bit 7 STA TEMP LDA,Y+ ;Hämta tecken från nckelsträng CMPA TEMP ;Jämför med nckel BEQ KLOOP ;Data matchar, testa nästa INC ERRNUM ;Data stämmer ej med nckel. Öka felräknare BRA KLOOP ;Testa nästa KEXIT: LDA ERRNUM ;Hämta antal fel PULY ;Återställ register PULX RTS TEMP: RMB ;Temporärvariabel ERRNUM: RMB ;Variabel för antal fel 75 76

39 Lösningsförslag BOS: EQU $20 DIPSW: EQU $FC HEXDIS: EQU $FB ORG $20 START : LDSP #BOS ;Initiering av stackpekare LOOP: LDA DIPSW STA TEMP ;Gör kopia CMPA #$0C ; SUB4 BNE NEXT JSR SUB4 BRA LOOP NEXT : ANDA #%0000 CMPA #% ;??0??0 SUB2 BNE NEXT2 JSR SUB2 BRA LOOP NEXT2 : LDA TEMP ;Hämta kopia av A-reg ANDA #% CMPA #% ;?????? SUB BNE NEXT3 JSR SUB BRA LOOP NEXT3: LDA TEMP ;Hämta kopia av A-reg ANDA #% CMPA #% ;???0??? SUB3 BNE NEXT4 JSR SUB3 BRA LOOP NEXT4: CLR HEXDIS BRA LOOP TEMP: RMB ;För kopia av A-reg ;***************************************************************************** SUB: PSHA LDA # STA HEXDIS PULA RTS ;***************************************************************************** SUB2: PSHA LDA #2 STA HEXDIS PULA RTS ;***************************************************************************** SUB3: PSHA LDA #3 STA HEXDIS PULA RTS ;***************************************************************************** SUB4: PSHA LDA #4 STA HEXDIS PULA RTS ;***************************************************************************** ORG $FF FCB START ;RESET-vektor 77 Lösningsförslag BOS: EQU $20 DIPSW : EQU $FB HEXDIS: EQU $FB ORG $20 START : LDSP #BOS ;Initiering av stackpekare LOOP: LDX #JTAB LDA DIPSW ;Läs inport DIPSW CMPA #7 ;Mavärde BHI ERROR ;Ogiltigt. Visa E på HEXDISPLAY LDA A,X ;Ladda adress till subrutin från tabell STA TEMP LDX TEMP JSR 0,X ;Utför vald subrutin BRA LOOP ;Upprepa ERROR : LDA #$E ;Felkod STA HEXDIS BRA LOOP TEMP: RMB JTAB: FCB $80,$67,$75,$52,$90,$B9,$AF,$E BOS: EQU $20 INNUMB: EQU $FB INEDGE: EQU $FC UTPORT: EQU $FB ORG $20 START: LDSP #BOS ;Initiering av stackpekare CLR EDGECT ;Nollställ flankräknare CLR UTPORT ;Antal negativa flanker är 0 LOOP: LDA INNUMB ;Läs inport för bitnummer (Avkänn bit nr ) JSR NEDGE ;Vänta på negativ flank på inport INEDGE, bit INC EDGECT ;Öka flankräknare LDA EDGECT ;Hämta antal flanker STA UTPORT ;Mata ut antal negativa flanker på UTPORT BRA LOOP ;Upprepa ;*********************************************************************************** ; Subrutin som väntar på negativ flank ; Om positiv flank skall registreras skall ; väntelooparna WAIT0 och WAIT kastas om. NEDGE : PSHA ;Spara på stack PSHX LDX #BMASK LDA A,X ;Hämta bitmask WAIT0 : BITA INEDGE ;Läs givare och maska fram bit med nr enl INNUMB BEQ WAIT0 WAIT : BITA INEDGE ;Läs givare och maska fram bit med nr enl INNUMB BNE WAIT PULX ;Återställ reg PULA RTS ;*********************************************************************************** EDGECT: RMB ;Flankräknare BMASK : FCB,2,4,8,6,32,64,28 ;Mask för bit 0-7 ORG $FF FCB START 78

40 Lösningsförslag ; Subrutin PCNT PCNT: PSHX ;Spara register CLR HITCNT ;Nollställ träffräknare LOOP: LDA,X+ ;Hämta tabellvärde CMPA #$FF ;Slutmarkering? BEQ PEXIT ;Ja ANDA #$F0 ;Maska fram bit 7-4 CMPA #$60 ;Testa villkor BHS LOOP ;Ej träff, testa nästa INC HITCNT ;Träff, öka räknare BRA LOOP ;Testa nästa PEXIT: LDA HITCNT ;Hämta resultat PULX ;Återställ register RTS HITCNT: RMB ;Träffräknare ORG $FF FCB START 8.29 ; Subrutin SWAP som bter ordning på nibblar i en dataarea SWAP: PSHA ;Spara register på stack PSHX STA SWCOUNT BEQ SWEX SWLOOP LDA 0,X ;Hämta data från dataarea STA TEMP ;Gör kopia av data LSLA ;6-bitars skift ROL TEMP LSLA ROL TEMP LSLA ROL TEMP LSLA ROL TEMP ;Nu är TEMP swappad LDA TEMP STA,X+ ;Skriv tillbaka till dataarea och öka pekare DEC SWCOUNT BNE SWLOOP SWEX: PULX ;Återställ register PULA RTS SWCOUNT: RMB ;Räknare för antal btes TEMP: RMB ;Temp variabel Lösningsförslag ; Subrutin EXCHG EXCHG PSHA ;Spara register på stack PSHX PSHY TSTA ;Några dataord att fltta? BEQ BLKEX ;Nej. Färdigt STA DCOUNT ;Räknare för antal dataord kvar att fltta EXLOOP: LDA 0,X ;Hämta dataord från DATA STA TEMP ;Mellanlagra LDA 0,Y ;Hämta dataord från DATA2 STA,X+ ;Skriv dataord från DATA2 till DATA, öka pekare2 LDA TEMP ;Hämta dataord från DATA STA,Y+ ;Skriv dataord från DATA2 till DATA, öka pekare2 DEC DCOUNT ;Minska ordräknare BNE EXLOOP ;Färdigt? Nej ; Nu är det färdigt BLKEX: PULY ;Återställ register PULX PULA RTS DCOUNT: RMB ;Räknare för antal dataord kvar att fltta TEMP: RMB ;Plats fär mellanlagring av dataord 8.3 ; Subrutin ODDCNT: PSHX ;Spara register på stack CLR HITCNT ;Nollställ Träffräknare ODDLOOP LDA,X+ ;Hämta data från tetsträng. Öka pekare BEQ ODDEX ;Strängslut ANDA #% ;Maska dont't care-bitar CMPA #% ;Testa bitmönster BNE ODDLOOP ;Ej träff, testa nästa COUNT : INC HITCNT ;Träff öka räknare BRA ODDLOOP ;Testa nästa ODDEX : LDA HITCNT PULX ;Återställ register RTS HITCNT: RMB ;Träffräknare 8.32 ; Subrutin BLKMAN BLKMAN: PSHA ;Spara register på stack PSHX LDA #6 ;Sätt bteräknare STA COUNT PATLOOP: LDA 0,X ;Hämta data från tabell. Öka pekare ANDA #%0 ;Maska bort bit 7 EORA #% ;Invertera bit 5 STA,X+ ;Skriv tillbaka till tabell DEC COUNT ;Minska bteräknare BNE PATLOOP ;Nästa ord PATEX: PULX ;Färdigt återställ register PULA RTS COUNT: RMB ;Bteräknare 79 80

41 Lösningsförslag 8 9 Adressavkodning 9. a) Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. RWM $ $07FF $E ROM $FFFF I/O $C5A $C5A Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. RWM $ $07FF $E ROM $FFFF $C5A I/O $C5A a) Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. RWM $ $0FFF $E ROM $FFFF I/O $ $60FF Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. RWM $ $0FFF $E ROM $FFFF I/O $ $60FF Lösningsförslag 82 Vid läsning av inporten på adresserna 0 så adresseras också utporten eftersom inte R/W-signalen används i dess avkodning. Data som läses från inporten skrivs då också i utporten. 9.4 a) Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. $FFFF ROM $F RWM $DFFF 0 $C I/O $E0D $E0D CS-signalerna bildas ur de för respektive modul konstanta adressdelarna, som grindas med VAsignalen För in- och utportarna skapas den gemensamma CS-signalen: : CS-signalerna för respektive port blir nu: utport: 2 0 / inport: 2 0 / / Placera en inport i form av en buffert, på samma adress, men med en CSR (ChipSelectRead) 9.3 a) Modulerna tar upp följande adressområden: Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. $FFFF ROM $E $BFFF 0 Modulen $B avbildas på RWM... totalt åtta $87FF intervall $ $7FFF 0 alla udda i utport $ intervallet $7FFF 0 alla som slutar inport $ på CSR och CSW är aktivt höga: Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 CS $FFFF E 0 D / 8 82

42 Lösningsförslag a) ROM ( Read Onl Memor ) minne som enbart är läsbart. RWM ( Read Write Memor ) minne som är både läsbart och skrivbart. Man ser att varje minneskapsel har 3 adressledningar, A0 - A2, som insignaler. Det innebär att varje kapsel innehåller 2 3 ord = 8 kbte. Man ser också att en av kapslarna, nr ) är av ROM-tp, t den använder ej R/W-signalen. Datorn har således 8 kbte ROM och 24 kbte RWM. c) Minneskapslarna upptar följande adressområden: Lösningsförslag a) Minnesmodulerna i adressrum M tar upp följande adressområden: Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. $FFFF ROM $E RWM $BFFF 0 $ $0FFF I/O $ Modul d) VA = (Valid Memor Address) anger att adressbussens värde är stabilt och därför används denna signal för att grinda adresserna till minnet. Då kommer de adresser som finns ut på bussen under tiden som adressledningar håller på att ändras aldrig att nå primärminnet. 9.7 a) Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. I/O Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. $FFFF $E $BFFF 0 $A $2FFF $ $DFFF 0 $C $5FFF 0 0 $ $9FFF 0 0 $ $FFF $ $B $B I/O-modulens interna struktur bör utformas på följande sätt: Indata port A Utdata port A Indata port B Utdata port B Modulen avbildas på två intervall Modulen avbildas på två intervall Modulen avbildas på två intervall 9.9 X0 X R/W 7 VA Minnesmodulerna och I/O-arean i adressrummet tar upp följande adressområden: Modul Adressbuss A5 A4 A3 A2 A A0 A9 A8 A7 A6 A5 A4 A3 A2 A A0 Anm. RWM $C $DFFF 0 RWM2 $E $E07F I/O $E $E7F IE $E0E $E0E $E ROM $FFFF a) Steg : Steg 2: CS ROM2 (8k) Databuss OEA OE CLKA C Register OEB OE CLKB C Register A0 R/W CS' A0' (R/W )' R/W (R/W )' läs skriv A0' läs A0' skriv A0 läs A0 skriv OEA CLKA OEB CLKB 83 84

Grundläggande datorteknik - exempelsamling. Grundläggande datorteknik - exempelsamling

Grundläggande datorteknik - exempelsamling. Grundläggande datorteknik - exempelsamling Grundläggande datorteknik - eempelsamling Grundläggande datorteknik - eempelsamling Institutionen för Data och Informationsteknik Chalmers tekniska högskola Göteborg VT-204 Grundläggande datorteknik -

Läs mer

Assemblerprogrammeringsuppgifter för FLIS-processorn

Assemblerprogrammeringsuppgifter för FLIS-processorn 1 (2013-05-02) Assemblerprogrammeringsuppgifter för FLIS-processorn 1. I simulatorn för FLISP-datorn kan man ansluta strömbrytarmodulen DIPSWITCH till en inport och sifferindikatorn 7-SEGMENT till en utport.

Läs mer

Exempel 3 på Tentamen

Exempel 3 på Tentamen Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Exempel 3 på Tentamen Grundläggande datorteknik Examinator Kontaktperson under tentamen Tillåtna hjälpmedel Häfte Instruktionslista

Läs mer

Grundläggande datorteknik - exempelsamling. Institutionen för Data och Informationsteknik Chalmers tekniska högskola Göteborg HT-2013

Grundläggande datorteknik - exempelsamling. Institutionen för Data och Informationsteknik Chalmers tekniska högskola Göteborg HT-2013 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

Läs mer

CHALMERS TEKNISKA HÖGSKOLA

CHALMERS TEKNISKA HÖGSKOLA Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA217 Grundläggande Datortekik, Z EDA433 Grundläggande Datortekik, IT EDA452 Grundläggande Datortekik, D DIT790 Digital-

Läs mer

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen 3 EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU Måndag xx Oktober 20xx, kl. 8.30-12.30 Examinator

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

Exempel 2 på Tentamen med lösningar

Exempel 2 på Tentamen med lösningar Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Exempel 2 på Tentamen med lösningar Grundläggande datorteknik Examinator Kontaktperson under tentamen Tillåtna hjälpmedel Häfte

Läs mer

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU Onsdag 12 Januari 2011, kl. 14.00-18.00 Examinatorer

Läs mer

Exempel 1 på Tentamen med lösningar

Exempel 1 på Tentamen med lösningar Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Exempel 1 på Tentamen med lösningar Grundläggande datorteknik Examinator Kontaktperson under tentamen Tillåtna hjälpmedel Häfte

Läs mer

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU Måndag 17 December 2012, kl. 8.30-12.30 Examinatorer

Läs mer

Tentamen med lösningar

Tentamen med lösningar Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningar EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU Måndag xx Oktober 20xx, kl. 8.30-12.30

Läs mer

EDA215 Digital- och datorteknik för Z

EDA215 Digital- och datorteknik för Z EDA25 Digital- och datorteknik för Z Tentamen Måndag 7 december 2007, kl. 08.30-2.30 i M-salar Examinatorer Rolf Snedsböl, tel. 772 665 Kontaktpersoner under tentamen Som ovan. Tillåtna hjälpmedel Häftet

Läs mer

Assemblerprogrammering

Assemblerprogrammering 2012-02-14 Assemblerprogrammering Övningsuppgifter 2011 Lösningar (Med reservation för diverse fel!) 1. Hur många E-klockperioder använder CPU12 (HCS12) för att köra programsekvensen nedan? ORG $1000 LDAA

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #18 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblerprogrammering Assemblatorer vs kompilatorer

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblatorer vs kompilatorer En assemblator är ett program

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

Läs mer

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner Ext-3 (Ver 204-04-08) Exempel på RTN-beskrivning av FLEX-instruktioner. Figur på sidan 2 i detta häfte visar hur datorn FLEX är uppbyggd. På sidan visas dessutom hur ALU:ns funktion väljs med styrsignalerna

Läs mer

Extrauppgifter för CPU12

Extrauppgifter för CPU12 1 Extrauppgifter för CPU12 X1a) Skriv en instruktionssekvens som nollställer bit 3-0 i alla minnesord i adressintervallet 2035H, 2049H Använd X-registret för adressering X1b) Skriv en subrutin som maskerar

Läs mer

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU Måndag 19 oktober 2009, kl. 08.30-12.30 Examinatorer

Läs mer

Programexempel för FLEX

Programexempel för FLEX Aktivera Kursens mål: Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruera styrenheten. genom att. implementera olika maskininstruktioner i styrenheten. Kunna använda

Läs mer

Lösningsförslag tenta

Lösningsförslag tenta Lösningsförslag tenta 2013-12-16 (Version 5 med reservation för eventuella fel. Uppdaterad 140417.) 1. X = 1010 0101 2 ; Y = 0101 1011 2 (8 bitars ordlängd) a) [0, 2 n 1] = [0, 2 8 1] = [0, 255] b) [ 2

Läs mer

Tentamen (Svar och lösningsförslag)

Tentamen (Svar och lösningsförslag) Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen (Svar och lösningsförslag) LEU430 Digital- och datorteknik Måndag 19 oktober 2009, kl. 8.30-12.30 Examinator Lars-Eric

Läs mer

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronik-, data- och elektroingenjör Åk / lp o2 LEU43 EXAMINATOR

Läs mer

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: Data-, elektro- och mekatronikingenjör åk / lp och 2 KURSBETECKNING LEU43

Läs mer

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU Måndag 18 Oktober 2010, kl. 8.30-12.30 Examinatorer

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola F-36 FLEX- och FLIS-datorn Ext-8 Tallriksmodellen Stackoperationer

Läs mer

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner Ext-3 (Ver 203-04-2) Exempel på RTN-beskrivning av FLEX-instruktioner. Figur på sidan 2 i detta häfte visar hur datorn FLEX är uppbyggd. På sidan visas dessutom hur ALU:ns funktion väljs med styrsignalerna

Läs mer

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. Övningsuppgifter Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. F.2 Ett antal på varandra följande minnesord har

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #15 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Dataväg med pekarregister och stackpekare: I vår sjunde,

Läs mer

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Elektro Åk 1/ lp 4 EDA216 EXAMINATOR Lars-Eric Arebrink TID

Läs mer

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU Tentamen Måndag 23 oktober 2006, kl. 08.30 12.30 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Kontaktpersoner under tentamen Som

Läs mer

Digital- och datorteknik

Digital- och datorteknik Dessa sidor innehåller ett antal typ-prov som delas ut vid laborationerna. Syfte med dessa prov är att du skall känna att du hänger med på kursen att vi som godkänner dig på laborationsmomenten ser att

Läs mer

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Reducerad INSTRUKTIONSLISTA för FLIS-processorn Reducerad INSTRUKTIONSLI för FLIS-processorn 2013-11-08 2(10) Innehåll Sidan 3 Programmerarens bild av FLIS-processorn 4 Förklaring av beteckningar i instruktionslistan 5 Enkel dataflyttning 5 Logik 5

Läs mer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15. Aktivera Kursens mål: LV3 Fo7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011 EDA 451 - Digital och Datorteknik 2010/2011 Ur innehållet: Vi repeterar kursens lärandemål Diskussion i kring övningstentor t Övriga frågor 1 Lärandemål Det övergripande målet är att den studerande ska

Läs mer

Grundläggande Datorteknik Digital- och datorteknik

Grundläggande Datorteknik Digital- och datorteknik Grundläggande Datorteknik Digital- och datorteknik Kursens mål: Fatta hur en dator är uppbggd (HDW) Fatta hur du du programmerar den (SW) Fatta hur HDW o SW samverkar Digital teknik Dator teknik Grundläggande

Läs mer

LV6 LV7. Aktivera Kursens mål:

LV6 LV7. Aktivera Kursens mål: Aktivera Kursens mål: LV6 LV7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen

Läs mer

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar Digitalteknik EIT020 Lecture 15: Design av digitala kretsar November 3, 2014 Digitalteknikens kopplingar mot andra områden Mjukvara Hårdvara Datorteknik Kretskonstruktion Digitalteknik Elektronik Figure:,

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #16 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Behovet av ändring av programflödet För att kunna skriva

Läs mer

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller Aktivera Kursens mål: LV5 Fo12 Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller Aktivera Förra veckans mål: Konstruera styrenheten. genom att. implementera olika

Läs mer

Digital- och datorteknik

Digital- och datorteknik Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronikingenjör (samt data- och elektroingenjör) Åk / lp

Läs mer

EDA Digital och Datorteknik

EDA Digital och Datorteknik Digital och Datorteknik EDA45 200/20 EDA 45 - Digital och Datorteknik Dagens föreläsning:, Extra material Ext 8 Ur innehållet: Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för

Läs mer

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/ lp 3 Mekatronikingenjör åk 2/

Läs mer

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf EDA 451 Digital och datorteknik 2010/2011 Uppbyggnad_och_funktion.pdf Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primärminne och I/O-enheter kan anslutas Olika

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #14 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Vad vi har åstadkommit hittills: Med hjälp av kombinatoriska

Läs mer

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1 Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1 13.1 a) Minneskapseln har 10 st adressledningar, vilket innebär att den har 2 10 = 1024 adresser, var och med

Läs mer

ALU:n ska anslutas hur då?

ALU:n ska anslutas hur då? Aktivera Kursens mål: LV3 Fo7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

Adressavkodning - busskommunikation

Adressavkodning - busskommunikation Adressavkodning - busskommunikation Kompendie kapitel 10 Bussystem adressbuss databuss styrbuss Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primär och I/O-enheter

Läs mer

Grundläggande Datorteknik Digital- och datorteknik

Grundläggande Datorteknik Digital- och datorteknik Grundläggande Datorteknik Digital- och datorteknik Kursens mål: Fatta hur en dator är uppbggd (HDW) Fatta hur du du programmerar den (SW) Fatta hur HDW o SW samverkar Digital teknik Dator teknik 2 Lärandemål:

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2008-08-29 Skrivtid 9.00-13.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Johan Eriksson Tel 070 589 7911 Tillåtna

Läs mer

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Lösningsförslag till tentamen i Digitalteknik, TSEA22 Försättsblad till skriftlig tentamen vid Linköpings universitet, Datorteknik, ISY (4) Lösningsförslag till tentamen i Digitalteknik, TSEA Datum för tentamen 3009 Salar U4, U7, U0 Tid 4.00-8.00 Kurskod

Läs mer

Assemblerprogrammering del 2

Assemblerprogrammering del 2 Assemblerprogrammering del 2 FLISP och omvärlden Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 16 Ur innehållet: In- och ut-enheter Tilldelningar och uttrycksevaluering Programflödeskontroll

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2011-08-26 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna hjälpmedel

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #13 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Vad kännetecknar en tillståndsmaskin? En synkron tillståndsmaskin

Läs mer

Avbrottshantering. Övningsuppgifter

Avbrottshantering. Övningsuppgifter Avbrottshantering Övningsuppgifter 2013 Besvara kortfattat följande frågor rörande CPU12. Redogör för vad som händer vid RESET och varför detta sker. Förklara kortfattat vad som händer vid ett IRQ avbrott

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #19 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Normaltillstånd vs undantagstillstånd I normaltillstånd

Läs mer

Assemblerprogrammering del 1

Assemblerprogrammering del 1 Assemblerprogrammering del 1 Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 15 Ur innehållet: Assemblerspråket Programmerarens bild Assemblering/disassemblering Funktion: Översätter

Läs mer

2 UPPBYGGNAD OCH FUNKTION

2 UPPBYGGNAD OCH FUNKTION UTKAST 27/9 2010 - Uppbyggnad och funktion 2 UPPBYGGNAD OCH FUNKTION Detta kapitel ägnas åt metoder och principer som används för att bygga upp ett komplett datorsystem bestående av centralenhet, minne

Läs mer

Tentamen i Digitalteknik, EITF65

Tentamen i Digitalteknik, EITF65 Elektro- och informationsteknik Tentamen i Digitalteknik, EITF65 3 januari 2018, kl. 14-19 Skriv anonymkod och identifierare, eller personnummer, på alla papper. Börja en ny uppgift på ett nytt papper.

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin. 1(5) Övningstentamen i Mikrodatorer och assemblerprogrammering, ELGA05 Hjälpmedel: Bifogad lista med memokoder för MC68xxx. Samtliga programmeringsuppgifter ska innehålla flödesschema med förklaringar

Läs mer

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar skall inlämnas.

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2009-08-28 Skrivtid 9.00-13.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna

Läs mer

Styrenheten styrsignalsekvenser programflödeskontroll

Styrenheten styrsignalsekvenser programflödeskontroll Styrenheten styrsignalsekvenser programflödeskontroll Kontroll av programflöde Instruktionerna är ordnade sekventiellt i minnet och utförs normalt i denna ordning. Vissa programkonstruktioner kräver dock

Läs mer

Assemblerprogrammering del 3

Assemblerprogrammering del 3 Assemblerprogrammering del 3 Dagens föreläsning behandlar: Kompendiet kapitel 9 och 10.4 Arbetsboken kapitel 16 Ur innehållet: Modularisering, subrutiner och strukturerad programutveckling (flödesdiagram)

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll: F: Minneselement Innehåll: - Latchar - Flip-Flops - egister - Läs- och skrivminne (andom-access Memory AM) - Läsminne (ead Only Memory OM) Ett minneselements egenskaper Generellt sett så kan följande operationer

Läs mer

Centralenheten: ALU, dataväg och minne

Centralenheten: ALU, dataväg och minne Centralenheten: ALU, dataväg och minne Dagens föreläsning: Kompendium kapitel 7 Arbetsbokens kapitel 11,12 RTN - Register Transfer Notation Förenklat skrivsätt för att specificera operationer där register

Läs mer

Övningsuppgifter i Mikrodatorteknik 4p/5p

Övningsuppgifter i Mikrodatorteknik 4p/5p Övningsuppgifter i Benny Thörnberg Mittuniversitetet Inst. för Informationsteknologi och medier Hösten 2005 1 Exekvering av assemblerkod 1.1 Statusflaggors beteende Vad blir C-, N- och Z- flaggornas värden

Läs mer

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik EDA 45 - Digital och Datorteknik Dagens föreläsning: Assemblerprogrammering för FLEX, Extra material Ext 8 Ur innehållet: Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för programmeraren

Läs mer

Tentamen i Digital Design

Tentamen i Digital Design Kungliga Tekniska Högskolan Tentamen i Digital Design Kursnummer : Kursansvarig: 2B56 :e fo ingenjör Lars Hellberg tel 79 7795 Datum: 27-5-25 Tid: Kl 4. - 9. Tentamen rättad 27-6-5 Klagotiden utgår: 27-6-29

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-08-27 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna

Läs mer

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 11-01-12 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #9 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola ekvensnät Vad kännetecknar ett sekvensnät? I ett sekvensnät

Läs mer

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl Tentamen TSEA22 Digitalteknik 5 juni, 2015, kl. 08.00-12.00 Tillåtna hjälpmedel: Inga. Ansvarig lärare: Mattias Krysander Visning av skrivningen sker mellan 10.00-10.30 den 22 juni på Datorteknik. Totalt

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Aritmetik i digitala system Grindnät för addition: Vi

Läs mer

11/16/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

11/16/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke... LV4 Fo10 Aktivera Kursens mål: Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Koppla samman register och ALU till en dataväg Minnets uppbyggnad och anslutning till datavägen

Läs mer

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering) Ext-15 (2013-08-26) sida 1 Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i arbetsboken (ARB) kapitlen 14-16. En del korta programavsnitt

Läs mer