Programexempel för FLEX

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

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

Digital- och datorteknik

Digital- och datorteknik

Extrauppgifter för CPU12

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Digital- och datorteknik

Digital- och datorteknik

Lösningsförslag tenta

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Digital- och datorteknik

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

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

Digital- och datorteknik

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

Assemblerprogrammets struktur; exempel

Maskinorienterad Programmering 2010/11

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

Assemblerprogrammering

FLEX Instruktionslista

Exempel 3 på Tentamen

F4: Assemblerprogrammering

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

Bilda styrsignalerna till datavägen RESET FETCH EXECUTE NF NF NF. Digital och Datorteknik EDA /2011. Digital och Datorteknik EDA /2011

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

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

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Styrenheten styrsignalsekvenser programflödeskontroll

Tentamen. Datorteknik Y, TSEA28

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

TSEA28 Datorteknik Y (och U)

Assemblerprogrammering för ARM del 2

LV6 LV7. Aktivera Kursens mål:

Tentamen. Datorteknik Y, TSEA28

CHALMERS TEKNISKA HÖGSKOLA

EDA215 Digital- och datorteknik för Z

Exempel 1 på Tentamen med lösningar

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

Digital- och datorteknik

Tentamen med lösningar

Digital- och datorteknik

Tentamen. Datorteknik Y, TSEA28

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

INSTRUKTIONSLISTA för FLEX-processorn

Digital- och datorteknik

Tentamen (Exempel) Datorteknik Y, TSEA28

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

Tentamen. Datorteknik Y, TSEA28

Assemblerprogrammets. struktur; exempel

Tentamen (Exempel) Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Laborationsmoment t 2 - En Borrautomat

Tentamen (Exempel) Datorteknik Y, TSEA28

Assemblerprogrammering för HCS12

ALU:n ska anslutas hur då?

Nya instruktioner. b 7

Assemblerprogrammering del 3

Exempel 2 på Tentamen med lösningar

Nya instruktioner. b 7

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

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

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Tentamen (Exempel) Datorteknik Y, TSEA28

Föreläsningsanteckningar 3. Mikroprogrammering II

EDA Digital och Datorteknik

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

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

3. Mikroprogrammering II

Laborationsmoment t 2 - En Borrautomat

Laboration nr 3 behandlar

Tentamen. Datorteknik Y, TSEA28

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

Digital- och datorteknik

Digital- och datorteknik

TENTAMEN(Nu anpassad till FLIS- processorn)

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

Tentamen (Svar och lösningsförslag)

Tentamen. Datorteknik Y, TSEA28

Grundläggande Datorteknik Digital- och datorteknik

Digital- och datorteknik

Tentamen. Datorteknik Y, TSEA28

CPU. Carry/Borrow IX. Programräknare

TENTAMEN (Något redigerad)

Kontrollskrivning Mikrodatorteknik CDT S2-704

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

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

Övningsuppgifter i Mikrodatorteknik 4p/5p

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

Föreläsningsanteckningar 2. Mikroprogrammering I

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Digitala System: Datorteknik ERIK LARSSON

Transkript:

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 instruktionslistan och skriva mycket enkla assemblerprogram Studera olika instruktionstyper och adresseringsmoder Använda utvecklingsmiljön för FLISP Veckans mål: Konstruera styrenheten. genom att.. implementera olika maskininstruktioner i styrenheten. Villkorliga hopp Subrutiner och stack Skriva enkla program för FLISP Strukturerad assemblerprogrammering Programexempel för FLEX Addera de 16-bitars talen P och Q. P hittas på minnesadress 20 16 (och 21 16.) Q hittas på minnesadress 22 16 (och 23 16.) Placera resultatet på adress 24 16 (och 25 16.) Programmets startadress är 40 16 Grundläggande Datorteknik LV5 1 Grundläggande Datorteknik LV5 2 Dagens mål: Du ska kunna.. Villkorliga hopp: Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Vid villkorliga hopp används relativa hoppinstruktioner Grundläggande Datorteknik LV5 3 Grundläggande Datorteknik LV5 4 1

Villkorliga hopp -Instruktioner Läs M($12) Påverka N-flaggan Negativ? Minska M($12) med 10 Fortsätt Negativt när N=1 Testa SALDO if SALDO 0 minska SALDO med 10:- fortsätt Grundläggande Datorteknik LV5 5 Vad gör processorn vid BMI? 1) Läser in HELA branch-instruktionen (PC pekar på nästa instruktion i minnet dvs. PC = $04) 2) Undersöker N-flaggan OM N=0 FETCH på adress $04 OM N=1 PC + offset PC FETCH på adress $0A Adr Minne 00 $12 01 $52 02 $22 03 $06 04 PC $04 +Offset $06 =Ny PC $0A OP-Kod BMI $0A Offset Next OP Grundläggande Datorteknik LV5 6 Dagens mål: Du ska kunna.. Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Grundläggande Datorteknik LV5 7 Relativa villkorliga hopp Om Z = 1 PC+Offset PC, FETCH Annars FETCH Testa först i FLISP-simulatorn Adress (Hex) 20 LDA #$FF 21 22 INCA 23 BEQ $22 24 25 BRA $20 26 27 Grundläggande Datorteknik LV5 8 2

Execute BEQ $22 Dagens mål: Du ska kunna.. State Summa-term RTN Styrsignaler = 1 Kommentar Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Grundläggande Datorteknik LV5 9 Grundläggande Datorteknik LV5 10 Villkorliga hopp Villkorliga hopp - forts Ext 9 Instruktionsuppsättningen för FLEX-processorn har ett antal villkorliga hoppinstruktioner. De kan indelas i följande tre grupper: 1. Enkla hoppvillkor. 2. Hoppvillkor för tal utan inbyggt tecken. 3. Hoppvillkor för tal med inbyggt tecken. (2-komplementrepresentation) 1. Enkla hoppvillkor. Vid de enkla villkorliga hoppen testas innehållet i en av flaggvipporna N, Z, V eller C och hoppet utförs om villkoret är uppfyllt, dvs den aktuella flaggvippans värde, är 0 resp 1. Grundläggande Datorteknik LV5 11 Grundläggande Datorteknik LV5 12 3

Villkorliga hopp - forts Ext 9 Villkorliga hopp - forts Ext 9 1) 2) 3) 2. Hoppvillkor för tal utan inbyggt tecken. Förutsätt att flaggorna har påverkats av en subtraktion X - Y enligt: LDAA XVALUE Läs X från minnet till A CMPA #Y Låt skillnaden X - Y påverka flaggorna B(Villkor) Hoppadress Utför hoppet om villkoret är uppfyllt X och Y är 8-bitars tal som tillhör intervallet [0, 255]. 2. Hoppvillkor för tal utan inbyggt tecken. X och Y är 8-bitars tal som tillhör intervallet [0, 255]. Flaggor C och Z X > Y, X Y, X = Y, X Y, X Y och X < Y. Relation C Z Sant om X > Y 0 0 C' Z' = 1 X = Y 0 1 Z = 1 X < Y 1 0 C = 1 Grundläggande Datorteknik LV5 13 Grundläggande Datorteknik LV5 14 Villkorliga hopp - forts Ext 9 Villkorliga hopp - forts Ext 9 1) 2) 3) 3. Hoppvillkor för tal med inbyggt tecken. (2-komplementstal) Förutsätt att flaggorna har påverkats av en subtraktion X - Y enligt: LDAA XVALUE Läs X från minnet till A CMPA #Y Låt skillnaden X - Y påverka flaggorna B(Villkor) Hoppadress Utför hoppet om villkoret är uppfyllt X och Y är 8-bitars tal som tillhör intervallet [-128, 127]. 3. Hoppvillkor för tal med inbyggt tecken. X och Y är 8-bitars tal som tillhör intervallet [-128,127]. Flaggor N, V och Z X > Y, X Y, X = Y, X Y, X Y och X < Y. Relation N V Z Sant om X > Y 0 0 (N V)' Z' = 1 X = Y 0 1 Z = 1 X < Y 1 0 N V = 1 Grundläggande Datorteknik LV5 15 Grundläggande Datorteknik LV5 16 4

Uppgift Dagens mål: Du ska kunna.. Två variabler P och Q är lagrade i minnet. Jämför talen och skriv det största till variabeln R. P är placerad på adress 20 16 i minnet. Q är placerad på adress 21 16 i minnet. R är placerad på adress 22 16 i minnet. Programmets startadress 40 16 i minnet Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Grundläggande Datorteknik LV5 17 Grundläggande Datorteknik LV5 18 STACK och STACKPEKARE Ext 17 Stacken - forts Ext 17 STACK: Ett minnesutrymme Används för att lagra temporära data (registerinnehåll och återhhoppsadresser) STACKPEKARE: Ett register (Reg SP) som pekar på det senast ditlagda INSTRUKTIONER: PSH: Placera ett registerinnehåll PÅ stacken PUL: Hämta FRÅN stacken TILL ett register Grundläggande Datorteknik LV5 19 Minnet Program Data Register SP Dataminnet Variabler (Data) Stack Stack Stacken: ett minnesutrymme som vi temporärt utnyttjar Grundläggande Datorteknik LV5 20 5

PSHA. Stacken forts några instruktioner Innehållet i register A skrivs till stacken (till minnet). RTN-beskrivningen: 1) SP-1 SP 2) A M(SP) PULA. Hämta ett dataord från stacken till register A RTN-beskrivningen: 1) M(SP) A 2) SP+1 SP Register SP Innehåll på stacken (i minnet) Adr. 0C 0D 0E 0F 10 11 12 13 14 Grundläggande Datorteknik LV5 21 Uppgift Definiera en stack som börjar på adress 7F 16. Placera sedan följande på stacken: 3B 16, 12 16, 66 16 och F8 16. Grundläggande Datorteknik LV5 22 Arb s 139 Execute PSHA Dagens mål: Du ska kunna.. State Summa-term RTN Styrsignaler = 1 Kommentar Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Grundläggande Datorteknik LV5 23 Grundläggande Datorteknik LV5 24 6

Huvud program Subrutiner Ett stycke kod som återanvänds flera gånger. Man utför hopp till och från en subrutin Huvud program Subrutiner Ett stycke kod som återanvänds flera gånger. Man utför hopp till och från en subrutin Subrutin Subrutin RTS ReTurn from Subroutine RTS Jump to SubRoutine Grundläggande Datorteknik LV5 25 Grundläggande Datorteknik LV5 26 Huvud program Subrutiner Ett stycke kod som återanvänds flera gånger. Man utför hopp till och från en subrutin Stack: Aktivera. Subrutin o stack Ett minnesutrymme Dataminnet Jump to SubRoutine Subrutin Stack ÅHA Stackpekare: PSH: PUL: Register S. Pekar på översta elementet på stacken Kopiera ett reg TILL stacken Register S Hämta FRÅN stacken TILL ett reg Variabler (Data) Stack Stack RTS Subrutin: Ett stycke kod, avslutat med instruktionen RTS RTS ReTurn from Subroutine JSR: Hopp TILL subrutin RTS: Återhopp FRÅN subrutin Grundläggande Datorteknik LV5 27 Grundläggande Datorteknik LV5 28 7

Subrutiner Huvud program Subrutin Jump to SubRoutine RTN Stack S-1 S PC M(S) Adr PC Dagens mål: Du ska kunna.. Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner RTS ReTurn from Subroutine RTN M(S) PC S+1 S Programmera i FLEX-miljön Grundläggande Datorteknik LV5 29 Grundläggande Datorteknik LV5 30 Multiplicera den 16-bitars variabeln P med 2 Gör en subrutin av det Adr Minne Adr Minne Assembler prog $80 $3B ASL $21 2*P L $81 $21 $82 $3D ROL $20 2*P H $83 $20 $84 $43 RTS $85 ROL P H 20 P H 21 P L ASL C P L 0 Grundläggande Datorteknik LV5 31 Multiplicera den 16-bitars variabeln P med 4 Gör en subrutin av det Adr Minne Assembler prog $80 $3B ASL $21 2*P L $81 $21 $82 $3D ROL $20 2*P H $83 $20 $84 $43 RTS $85 $34 JSR $80 Mul2 $86 $80 $87 $34 JSR $80 Mul2 $88 $80 $89 $43 RTS $8A Adr Minne 20 P H 21 P L Grundläggande Datorteknik LV5 32 8

Dagens mål: Du ska kunna.. Förstå villkorliga hopp i program Implementera BEQ-instruktionen i styrenheten. Använda villkorliga hoppinstruktioner Förstå begreppen stack, stackpekare och stackinstruktioner Implementera PSH-instruktionen i styrenheten. Förstå användningen av subrutiner Skriva subrutiner Programmera i FLEX-miljön Grundläggande Datorteknik LV5 33 Veckans mål: LV5 Fo13 Konstruera styrenheten. genom att.. implementera olika maskininstruktioner i styrenheten. Villkorliga hopp Subrutiner och stack Programmera i FLISP-miljön Strukturerad assemblerprogrammering Dagens mål: Du ska kunna. Skriva kontrollstrukturer If then else; While, Do while testa bitar Använda IO-simulatorer Skriva strukturerade assemblerprogram för FLISP Programmoduler Top-down/Bottom up Inre och yttre dokumentation Grundläggande Datorteknik LV5 34 Kontrollstruktur if () {} Kontrollstruktur if () {} If Then Villkor Rättfram kodning TST BNE BRA DipSwitch assign If Then Villkor Bättre kodning TST BEQ DipSwitch End if (DipSwitch!= 0) HexDisp = Dipswitch; assign LDA DipSwitch STA HexDisp End if (DipSwitch!= 0) HexDisp = Dipswitch; LDA STA DipSwitch HexDisp BNE Hopp om ICKE zero Z=0 BEQ Hopp om zero Z=1 Grundläggande Datorteknik LV5 35 BNE Hopp om ICKE zero Z=0 BEQ Hopp om zero Z=1 Grundläggande Datorteknik LV5 36 9

Kontrollstruktur if () {1} else {2} If Then Else End Villkor 1 2 LDA TSTA BEQ DipSwitch then LDA #2 STA HexDisp BRA Kontrollstruktur if () {1} else {2} If Then Else End Villkor 1 2 LDA TSTA BNE DipSwitch else LDA #1 STA HexDisp BRA if (DipSwitch == 0) HexDisp = 1; else HexDisp = 2; then LDA #1 STA HexDisp if (DipSwitch == 0) HexDisp = 1; else HexDisp = 2; else LDA #2 STA HexDisp BEQ Hopp om zero Z=1 Grundläggande Datorteknik LV5 37 BNE Hopp om ICKE zero Z=0 Grundläggande Datorteknik LV5 38 While Then End Kontrollstruktur while () {} Villkor 1 while (DipSwitch!= 0) HexDisp = 1; while _while BEQ Hopp om zero Z=1 LDA TST BEQ DipSwitch _while LDA #1 STA HexDisp BRA while Grundläggande Datorteknik LV5 39 Kontrollstruktur do {} while () LOOP UNTIL Villkor? do { HexDisp = 0; }while (DipSwitch >= 10); do CLRA STA Test av tal utan tecken BHS Villkor: R M C=0 HexDisp LDA DipSwitch CMPA #10 BHS do Grundläggande Datorteknik LV5 40 10

Villkorlig programflödeskontroll Mnemonic Funktion Villkor Enkla flaggtest BCS Hopp om carry C=1 BCC Hopp om ICKE carry C=0 BEQ Hopp om zero Z=1 BNE Hopp om ICKE zero Z=0 BMI Hopp om negative N=1 BPL Hopp om ICKE negative N=0 BVS Hopp om overflow V=1 BVC Hopp om ICKE overflow V=0 Test av tal utan tecken BHI Villkor: R>M C + Z = 0 BHS Villkor: R M C=0 BLO Villkor: R<M C=1 BLS Villkor: R M C + Z = 1 Test av tal med tecken BGT Villkor: R>M Z + ( N V ) = 0 BGE Villkor: R M N V = 0 BLT Villkor: R<M N V = 1 BLE Villkor: R M Z + ( N V ) = 1 Dagens mål: Du ska kunna. Skriva kontrollstrukturer If then else; While, Do while testa bitar Använda IO-simulatorer Skriva strukturerade assemblerprogram för FLISP Programmoduler Top-down/Bottom up Inre och yttre dokumentation LV5 Fo13 Grundläggande Datorteknik LV5 41 Grundläggande Datorteknik LV5 42 If villkor then If Att testa bitar på inporten EN BIT Then End Villkor if b 3 =1 then LDA Inport ANDA #%00001000 BEQ --- --- LDA Inport BITA #%00001000 BEQ --- --- if (b 3 =1) && (b 0 =1) then goto If End Att testa bitar på inporten FLERA BITAR Villkor LDA Inport ANDA #%00001001 CMPA #%00001001 BEQ --- 1 --- Grundläggande Datorteknik LV5 43 Grundläggande Datorteknik LV5 44 11

Dagens mål: Du ska kunna. Skriva kontrollstrukturer If then else; While, Do while testa bitar Använda IO-simulatorer Skriva strukturerade assemblerprogram för FLISP Programmoduler Top-down/Bottom up Inre och yttre dokumentation LV5 Fo13 Exempel IN- o UT-matning / Testa en bit Skriv ett program som hela tiden läser inporten (DipSwitch), om b 6 av inporten noll, skriv 7 till utporten (Hexdisplay) annars skriv 22 till utporten Programmets startadress: $10 Grundläggande Datorteknik LV5 45 Grundläggande Datorteknik LV5 46 Exempel IN- o UT-matning / Testa en bit Skriv ett program som hela tiden läser inporten (Keyboard), om tangent nummer 6 är aktiverad, skriv $66 till utporten (HexDisplay) annars skriv $FF till utporten Programmets startadress: $30 LV5 Fo13 Dagens mål: Du ska kunna. Skriva kontrollstrukturer If then else; While, Do while testa bitar Använda IO-simulatorer Skriva strukturerade assemblerprogram för FLISP Programmoduler Top-down/Bottom up Inre och yttre dokumentation Grundläggande Datorteknik LV5 47 Grundläggande Datorteknik LV5 48 12

Programmeringsprojekt: Bygg ett stoppur Du ska kunna: 1. Starta klockan 2. Stoppa klockan 3. Nollställa klockan Programmeringsprojekt Bygg ett stoppur 1. Räknare som håller reda på tiden 2. Huvudprogram 3. Rutin som visar tiden 4. Hur lagras tiden, format? 5. Rutin som ändrar (ökar) tiden 6. Rutin som läser av tangentbordet 7. Koda tangentnumren (Start, stop, nollställ klockan) 8. Rutin som startar klockan 9. Rutin som stannar klockan 10. Rutin som nollställer klockan 11. mm Grundläggande Datorteknik LV5 49 Grundläggande Datorteknik LV5 50 Start init Programmeringsprojekt Bygg ett stoppur Programmeringsprojekt Display IncClock CheckKbd tangent? Ja 1? Nej 2? Nej 3? Nej Nej Ja Ja Ja Ingen tangent nedtryckt Starta klockan StartClock Stanna klockan StopClock Nollställ klockan ResetClock Start Adress Data Stopp Kommentar Clock $02 Timmar $05 Tio minuter $01 Minuter $03 Tio sekunder $07 Sekunder $04 Tiondelar 1. Initiera 2. Main Loop 3. Subrutin som visar tiden 4. Subrutin som ändrar (ökar) tiden 5. Rutin som läser av tangentbordet och Startar klockan eller Stoppar klockan eller Nollställer klockan Grundläggande Datorteknik LV5 51 Grundläggande Datorteknik LV5 52 13

YTTRE Dokumentation ***************************************** *SUBRUTIN DELAY * Beskrivning: Skapar en fördröjning om * ANTAL x 500 ms. * * Indata: Antal intervall,om 500 ms i A * Anrop : LDA #6 Fördröj 6*500ms = 3s * JSR DELAY * * Utdata: Inga * Register-påverkan: Ingen * Anropad subrutin: Ingen. ***************************************** DELAY PSHA PSHX INNRE Spara reg på stacken TSTA Är fördröjningsvärde noll? BEQ DelExit Hoppa om noll ALOOP LDX #Konst Dokumentation * Snurra som tar 10 klockcykler XLOOP LEAX -1,X 2 cykler NOP 1 cykel CMPX #0 2 cykler BNE XLOOP 3 cykler DECA BNE ALOOP Ytterligare fördröjning? --- Grundläggande Datorteknik LV5 53 Grundläggande Datorteknik LV5 54 Skriv en rutin som räknar antal ettställda bitar på inporten (Dipswitch) och skriver resultatet på utporten (Hexdisplay) Programmets startadress: $20 Inport adress: $FB Utport adress: $FC Skriv ut siffrorna [0..9 10 ] på sifferindikatoren Lös uppgiften en gång till fast på ett strukturerat sätt Testa programmet med Run Slow och Run Fast Grundläggande Datorteknik LV5 55 Digital o Datorteknik fo 14 56 14

Skriv strömbrytarnas värde [0..F 16 ] på sifferindikatoren Skriv strömbrytarnas värde [0..9 10 ] på sifferindikatoren Digital o Datorteknik fo 14 57 Digital o Datorteknik fo 14 58 15