Maskinorienterad programmering, It/GU

Storlek: px
Starta visningen från sidan:

Download "Maskinorienterad programmering, It/GU"

Transkript

1 Institutionen för data och informationsteknik Laborationer i Maskinorienterad programmering, It/GU Detta häfte innehåller anvisningar om förberedelser och genomförande av 6 (3) laborationer. Inför varje laboration skall häftet studeras. Uppgifter i detta häfte och ur Arbetsbok för MC12 skall vara utförda och uppvisade inför varje laborationstillfälle. Eventuella lösningar på elektronisk form skall vara tillgängliga på ditt CTH-konto vid laborationstillfället. Bristfälliga förberedelser kan medföra avvisning från bokad laborationstid. Laborationerna utförs sekventiellt, momenten 1-3 ska klaras av under de första tre laborationstillfällena. Respektive moment ska studeras i god tid före laborationstillfället. Du ska också ha studerat dokumentation av den utrustning som skall användas under laborationen före laborationstillfället. Sådan dokumentation finns tillgänglig på elektronisk form via kursens resurssida. Skriv ditt namn och personnummer med bläck. Kontrollera att du får nedanstående tabell ifylld efter redovisad laboration. Detta försättsblad är ditt kvitto på att du är godkänd på respektive laborationsmoment. Laboration Ifylls med bläck! Laborant: Personnummer Datum Godkännande av laboration Laborationshandledares underskrift Namn (textat) Godkännande - laborationsserie: Laborationshandledares underskrift Datum

2 Laboration 1 Laboration nr 1 behandlar MC12 med Monitor dbg12, Displaymodul Tangentbord Borrmaskin Följande uppgifter ur Arbetsbok för MC12 ska vara utförda innan laborationen påbörjas. Du ska på begäran av laborationshandledare redovisa dessa. Uppg Sign. Följande hemuppgift ska vara utförd innan laborationen påbörjas. Hem- Uppgift Följande laborationsuppgifter ur denna del av laborations-pm skall redovisas för en handledare för godkännande under laborationen. Laborationsuppgift Sign Följande beskrivningar finns tillgängliga på elektronisk form via kursens resurssida. STUDERA DESSA! Laborationskort ML4, multifunktionskort för MC12 Laborationskort ML5, gränssnitt mot tangentbord/display (ML23), för MC12 Laborationskort ML15, gränssnitt mot tangentbord/display (ML23), för MC12 Laborationskort ML23, tangentbord/display, för MC12 DBG12 monitor/debugger för MC12 Följande fil finns tillgänglig via kursens resurssida laddfil.s19 2

3 Laboration 1 Innledning Du har tidigare använt ETERM. Med ETERM för MC12 kan du redigera, assemblera och testa dina program i simulatorn för MC12. Du kan också ansluta laborationssystemet MC12 till terminalfunktionen i ETERM via persondatorns COM-port. Följande enheter ingår i laborationsmiljön: En persondator (PC) med utvecklingsprogramvaran ETERM för MC12, laborationssystemet MC12 med monitor/debugger DBG12, en borrmaskin och ett antal laborationskort. Borrmaskinen ansluts till MC12 s inport och utport via en 26-polig flatkabel. Serieanslutning till COM-port Borrmaskin MC12 med monitor debugger dbg12 26-polig flatkabel Vidare så finns ett tangentbord ML2 och ett displaykort ML3 som ansluts till mikrodatorsystemet med hjälp av I/O-korten ML5 och ML15. Tangentbordet ML2 ansluts till MC12 via ML15. Displaykortet ML3 ansluts till MC12 via ML15. Detaljerade beskrivningar av dessa kort hittar du på resurssidan. ML19 är en avbrottsmodul som används under laboration 3. Beskrivs i Arbetsbok och laborations-pm. 3

4 Laboration 1 När vi nu ansluter labsystemet MC12 till en COM-port på PC:n och startar ett terminalfönster (Fliken Debug/Terminal) fungerar PC:n som en dum terminal bestående av tangentbord och bildskärm. (ETERM = Emulera terminal = härma terminal). Allt som nu skrivs på tangentbordet skickas direkt ner till labsystemet. Om monitor:n DBG12 är startad i MC12 (sker vid reset av MC12) kommer denna att eka alla tecken från tangentbordet och skicka dessa direkt till skärmen. Vidare, när vi trycker på Enter (krävs inte alltid) avkodas tecknen och monitorn startar upp tillhörande rutin. Rutinen avslutas oftast med att någon text skrivs ut på skärmen. Monitorn DBG12 lyssnar hela tiden på kommandon från tangentbordet bortsett från när monitorn är i läge go dvs MC12 kör ditt program. För att återgå till monitorn i detta fall krävs reset av MC12. Att undersöka minnesinnehåll och att disassemblera minnesinnehåll är exempel på programrutiner som finns i DBG12. Studera figuren nedan och bekanta dig med MC12 s monitor/debugger DBG12. Reset av labdatorn = Start av monitor Monitorn väntar på ett kommando Memoryprocedur Disassembleprocedur Traceprocedur Loadprocedur mm? Nej dasm? Nej tr? Nej l? Nej go? Nej Ja Ja Ja Ja Ja Goprocedur Kör programavsnitt. Man kan återgå till monitorn via Reset. 4

5 Laboration 1 MC12 s minne är konfigurerat enligt följande: I/O Adress $0000-$0FFF Med plats för I/O-kort och interna (HC12-) portar RWM Adress $1000-$3BFF Med plats för dina program och data RWM Adress $3C00-$3FFF Variabelarea för Monitorn DBG12 ROM Adress $4000-$FFFF Med plats för bland annat Monitorn DBG12 HCS12 med processorn CPU12 och minne med monitorn DBG12 Anslutning 5V 26-polig anslutning för laborationsutrustning. Exempelvis ML4 Inport (Buffert 74HC245) och utport (register 74HC273 Serie-anslutning för som kopplas till COM-porten på PC:n 4 st hörnkontakter för att ansluta ett eller flera I/O-kort ovanpå MC12 Klockkristall 5V s indikator Laborationssystemet MC12 med microcontroller HCS12 RESET-knapp för MC12. (monitorn startas om) Laborationsuppgift 1.1: Studera MC12 och labutrustningen som skall vara uppkopplade vid på din laborationsplats. Starta Eterm och anslut en terminal (COM1) under fliken Debug. Tryck på RESET på laborationssystemet MC12 och observera att text skrivs till terminalfönstret. Kontakta en handledare om ingen text skrivs till skärmen eller om texten är oläslig. Terminalfönstret bör se som figuren nedan visar. Du har nu genom att trycka på RESET startat monitorn som skriver ut en välkomsttext till dig. 5

6 Laboration 1 detta kallas DBG12 s prompter Den sista raden kallas för monitorns prompter och innebär att monitorn är redo att ta emot kommandon (order) från dig. Tryck Enter (<Enter>) ett par gånger på tangentbordet. Det du skriver på tangentbordet skickas direkt till MC12 för att avkodas och eventuellt utföras. Skriv Help<Enter> Monitorn gör vad du begär och skriver ut en hjälptext. Se figuren till höger. Undersök de olika kommandon genom att skriva exempelvis help mm om du vill undersöka mm-kommandot närmare. Undersök nu minnesinnehållen i de olika minnesområden vi har i systemet. Skriv: dm 0<Enter> för att studera adressområdet där vi har in-och utenheter. Skriv: dm 1000<Enter> för att studera adressområdet där du kan placera dina program. Skriv: dm e000<enter> för att studera adressområdet där vi har PROM (FLASH). Adressangivelsen anges till vänster, minnesinnehåll i mitten och till höger tolkas minnesinnehållet som ASCII-koder. Försök att ändra minnesinnehåll genom att använda kommandot mm. Skriv först: help mm<enter> för att studera en hjälptext. Skriv sedan mm 1000<Enter> för att studera och ha möjlighet att ändra minnesinnehållet på adress 1000 där du har RWM. Tryck Enter ett par gånger. I figuren intill finns det tydligtvis 33 på denna adress. Tryck på + (plus) för att studera minnesinnehållet på nästa adress. Tryck på + på nytt och ändra minnesinnehållet på adress 1002 till 55 genom att skriva 55<Enter>. Studera figuren intill. Testa även (minus) tangenten. 6

7 Laboration 1 Vilka två sätt kan du använda för att avsluta mm-kommandot och återgå till monitorns prompter? Försök ändra minnesinnehållet på adress 4000, 5D16 och E01F. Använd mm-kommandot som ovan. Vad händer och varför? Försök nu att ändra innehållet på adress 00ca till 03. Skriv mm ca<enter> och ändra till 03. Vad händer och varför Undersök RESET-vektorn. Var i minnet är denna placerad? Vilken startadress laddas till PC vid RESET? För att starta ett program i MC12 används go-kommandot. Skriv go (startadressen du hittade ovan)<enter> Du bör nu observera att monitorn startas på nytt, på samma sätt som när du trycker på RESET-knappen på MC12. Simulatoruppgift 1.1: På kursens resurssida, finner du en laddfil.s19 som du ska använda under laborationen. Denna skall testas med hjälp av simulatorn. Starta simulatorn och öppna ett konsolfönster på följande sätt: Välj först Simulator Setup 7

8 Laboration 1 Välj därefter SCI 0 Asynchronous Serial Interface och klicka på Connect. Du har nu valt en av seriekretsarna på MC12. Du får upp nästa fönster där du väljer att ansluta ett konsolfönster till seriekretsen. Välj Consol och klicka på Connect. Du får nu upp konsolfönstret. Klicka slutligen OK i det första fönstret. Ladda nu ner den givna laddfilen till simulatorn och välj Run Fast. (Startadressen är $1000). Du bör få upp text i konsolfönstret. Observera att först körs programmet du laddade ner. Efter detta startades monitorn dbg12.du kan nu använda olika monitorkommandon för att undersöka programmet du kört i simulatorn. OBSERVERA ATT DU FÖR TILLFÄLLET SIMULERAR dbg12. Vissa kommandon, exempelvis trace, fungerar inte fullständigt. Du kan dock undersöka program och minnesinnehåll med övriga kommandon. Jämför med utskriftsrutinen och flödesplanen på sidan 24 i arbetsboken. Laborationsuppgift 1.2: Använd max 20 min på denna uppgift. Spara filen laddfil.s19 i din arbetskatalog. Ladda sedan laddfil.s19 till MC12 genom att högerklicka i terminalfönstret. Starta programmet med go Du bör observera att text skrivs till skärmen. 8

9 Laboration 1 Undersök programmet med de monitorkommandon du har sett ovan. Använd dasm och jämför med hemuppgift 1. Fokusera i första hand på huvudprogammet och sedan på subrutinen. Försök att stega dig genom programmet med trace ett antal instruktioner och sätt även några brytpunkter bp. Fungerar detta eller inte? Försök förklara eller diskutera med en handledare senare. Sätt en brytpunkt och kör programsnurran varv för varv. Hur uppfattas texten nu? När programmet stannat på en brytpunkt krävs ett tr -kommando för att komma vidare innan du gör go på nytt Rita en skiss hur data och kod är placerade i minnet och rita även en flödesplan över programmet. Kontakta en handledare efter tre-fyra minuter för handledning. Försök komma underfund med vad som händer på skärmen när du först skriver $48 till adress $00CF med mm-kommandot. (Tips: Studera sidan 30 i Instruktionslistan för CPU12). Skriv sedan $65 och slutligen $6A. Vad läses på adress $00CF efter varje skrivning? Diskutera med en handledare nu eller senare. Laborationsuppgift 1.3: Du ska nu undersöka hårdvaran ML3/ML5. Använd mm-kommandot och skriv något segmentmönster till adress $C02. Skriv sedan exempelvis $55 till adress $C03. Skriv ut olika värden till dessa två adresser tills du förstår hur display-modulen fungerar. Simulatoruppgift 1.2: Utför uppgifter 61 till 64 i Arbetsbok för MC12. (Du behöver inte använda villkorlig assemblering; #define/#ifdef/#else/#endif). Studera display-modulen ML3/ML5 under Eterms hjälp-meny (IO-simulatorer). Lämpliga adresser är $C02 för ML5_SEG och $C03 för ML5_POS. Du får användning för din Display-rutin i en senare laboration, spara därför koden Använd + och under mmkommandot för att stega upp respektive ner adressen Se till att använda ML5 som interface för ML3 i simulatorn. Laborationsuppgift 1.4: Ladda nu ner din Display-rutin och testa denna. Justera fördröjningen så att denna anpassas MC12 s snabba arbetstakt. Du får användning för din Display-rutin i en senare laboration, spara därför koden. I labbet! Börja alla program med en nop-instruktion. Detta ger bättre utskrift vid trace (tr). 9

10 Laboration 1 Simulatoruppgift 1.3: Utför uppgifter 91 och 92 i arbetsboken. Studera tangentbords-modulen ML2/ML15 under Eterms hjälp-meny (IO-simulatorer). Lämplig adress är $9C0 för tangentbordet När du testar dina rutiner i simulatorn kan det vara lämpligt att använda lysdioderna Parallell Output för att verifiera att du har korrekt värde ut från dina tangentbordsrutiner. Se nedan. NOP Loop: JSR KEYB1 ; Läs tangentbord STAA OutPort ;..visa på ljusdioder BRA Loop Se till att använda ML15 som interface för ML2 i simulatorn. ; Börja med nop, enklare att köra trace Tryck ner en tangent och läs registret på nytt, släpp upp och läs ännu en gång. Testa tills du känner dig säker på hur det fungerar. Du får användning för din tangentbordsrutin i en senare laboration, spara därför koden Laborationsuppgift 1.5: Du ska nu undersöka tangentbordet ML2/ML15. Använd mm-kommandot och läs adress $9C0. Vad läses första gången när ingen tangent är nedtryckt? Varför? (Studera programmerarens bild av ML15 på sidan 56) Verkar hårdvaran fungera på samma sätt som simulatorn du använde tidigare? Ladda ner och testa din tangentbordsrutin med följande huvudprogram. NOP ; Börja med nop, enklare att köra trace Loop: JSR KEYB1 ; Läs tangentbord NOP ; Lämpligt ställe att sätta en brytpunkt (bp) BRA Loop För att testa rutinen är det här lämpligt sätta ut en brytpunkt. Studera register A varje gång du stannar på brytpunkten och verifiera att registret innehåller korrekt tangentkod (se uppgift 92 i arbetsboken). Du får användning för din tangentbordsrutin i en senare laboration, spara därför koden. 10

11 Laboration 1 Laborationsuppgift 1.6: Studera borrmaskinen framför dig. Undersök hårdvaran genom att använda samma förfarande som i uppgift 74 i Arbetsbok för MC12. Här finns dock inga strömbrytare att läsa indata ifrån. Använd därför en rutin liknande den nedan (editera, assemblera och ladda) ORG $1000 NOP Loop NOP ; Ge indata till register A STAA DCtrl ; Skriv till borrmaskinen LDAB DStatus ; Läs statusregistret BRA Loop Då det inte finns några strömbrytare att ge indata med kan vi vid NOP-instruktionen ge register A värde direkt genom att ändra detta. Använd monitorns reg-kommando. Undersök kommandot genom att skriva help reg. Stega genom programmet med trace när du undersöker borrmaskinen. Testa att starta borret och sänka det. Observera lysdioderna på borrmaskinen. Gröna lysdioder är statusregistret och gula är styrregistret. Vrid även på arbetsstycket för att ställa detta i referensposition och observera att lysdioden på borrmaskinen aktiveras och att du läser status till register B. Ge kommandot tr + som gör att du i fortsättningen kan trycka. (punkt) för att stega en instruktion. Bit 3-7 är ej definierade i statusregistret och kan anta vilka värden som helst. Tryck RESET på MC12. Studera lysdioderna (statusregistret) på borrmaskinen och pressa ner borret för hand till bottenläge. Observera hur statusbitarna ändras. (Kanske är tryckfjädern som lyfter borret lite klen lyft borret upp i så fall) Du har nu undersökt och lärt dig hur du kan använda monitorn DBG12 provat på hårdvaran (ML2, ML3, ML5 och ML15 och borrmaskinen) verifierat att programdelar för kommande laborationsmoment fungerar (display- och tangentbordsrutin). Om du har du tid över och vill, kan du nu direkt förbereda och fortsätta med laboration 2. 11

12 Laboration 2 Laboration nr 2 behandlar Assemblerprogrammering för styrning/övervakning av en borrmaskin Följande uppgifter ur Arbetsbok för MC12 ska vara utförda innan laborationen påbörjas. Du ska på begäran av laborationshandledare redovisa dessa. Uppg Sign. Följande hemuppgift ska vara utförd innan laborationen påbörjas. Hem- Uppgift Följande laborationsuppgifter ur denna del av laborations-pm skall redovisas för en handledare för godkännande under laborationen. Laborationsuppgift Sign Laborationsuppgift 2.1: Du skall nu arbeta med filen Main1.s12 du skrev i Uppgift 94 i arbetsboken. Observera att ditt program skall börja på adress $1000. Ändra eventuella I/O-adresser. Du kan lämpligen använda dig av två olika filer med konstantdefinitioner (se uppgift 93, IODEFS.S12), en som används för hårdvaran i labbet och en som används för simulering. Lagg till en NOP-instruktion direkt efter ORG $1000 för att få en bättre utskrift på skärmen när du kör trace. Assemblera den ändrade filen Main1.s12 och rätta eventuella fel. Ladda programmet till MC12 genom att högerklicka i terminalfönstret och välja filnamn. Undersökning av Main1 i MC12. Maskinprogrammet är nu laddat till MC12. Öppna listfilen för Main1 och ha denna tillgänglig på skärmen framför dig. Kontrollera att Main1 är placerat i minnet på MC12 genom att utnyttja monitorns dasmkommando. Skriv dasm Jämför det du ser på skärmen med listfilen. Leta upp startadressen för subrutinen COMMAND i listfilen och använd dasm-kommandot på nytt för denna adress. Troligen ser de dissassemblerade instruktionerna efter RTSinstruktionen konstiga ut. Försök förklara vad detta är (eller diskutera med en handledare, nu eller senare) 12

13 Laboration 2 Studera listfilen för huvudprogrammet som innehåller dummy-rutinerna SUB0 - SUB7 på begynnelseadressen för respektive subrutin. Använd monitorns dasm-kommandot och undersök dessa. Adresserna till subrutinerna SUB0 - SUB7 ligger i en tabell i minnet med begynnelseadressen JUMPTAB. Eftersom adresserna är 16 bitar breda krävs det 2 st. minnesord för att rymma (lagra) varje adress. Adresserna lagras på standardformat med den mest signifikanta byten på minnesadressen med lägst värde. Använd mm-kommandot för att studera JUMPTAB i minnet och jämför dessa startadresser med vad du erhöll med dasm-kommandot ovan. Diskutera med en handledare (nu eller sedan) om du är osäker. Test av Main1. När du använde simulatorn studerade du en simulerad utport för att verifiera att ditt program fungerade korrekt och att du hoppade till rätt subrutin SUB0, SUB1, etc. Det finns dock inte tillräckligt med utportar på MC12 så vi måste utnyttja brytpunkter för att verifiera programmet. Välj därför att studera listfilen på skärmen och undersök på vilken adress NOP-instruktionen i huvudprogrammet är placerad på. Se nedanstående utdrag av huvudprogrammet. Loop JSR KEYB1 ; Invänta vald operation NOP ; Instruktion för brytpunkt JSR COMMAND ; Utför vald operation Starta med trace och sätt en brytpunkt på NOP-instruktionen. Välj därefter go för att starta exekveringen. Efter det att du tryckt ner en tangent på tangentbordet kommer du att observera en utskrift på skärmen framför dig. (Tangentbordsrutinen hänger tills en tangent aktiveras.) Be om hjälp efter att ha felsökt i 5 minuter om du inte får någon utskrift. Studera nu innehållet i register A som är ditt önskade kommandonummer. För att fortsätta exekveringen måste du först ge ett tr-kommando för att komma bort från din brytpunkt. Därefter fortsätter du exekveringen med ett go-kommando. Välj go på nytt för att testa en ny tangent, osv. Studera listfilen på nytt och sätt nya brytpunkter på MOVB-instruktionerna i SUB0, SUB1 och SUB7. Använd samma testförfarande som ovan och verifiera att du stannar i dessa subrutiner när du ger kommandonummer 0, 1 och 7. 13

14 Laboration 2 Du har nu testat att programmet i Main1 fungerar. Med detta har du verifierat att du har ett korrekt fungerande programskal till borrmaskinuppgiften. Nu återstår att testa ut alla de subrutiner som implementerar de olika funktionerna hos borrmaskinen. Spara alla dina filer. Laborationsuppgift 2.2: Test av Main2, uppgift 97 i arbetsboken Din Main1 som du gjort ett fåtal ändringar i skall nu fungera korrekt. Välj själv om du önskar jobba vidare med denna fil eller om du vill göra liknande ändringar i Main2 som fortfarande är anpassad för simulatorn. Oberoende av vilken fil du arbetar vidare med så skall ditt filnamn nu vara Main2.s12 och du skall testa funktionerna START och STOP hos borrmaskinen. Studera för övrigt vad du utförde under uppgift 97 i arbetsboken. Observera att du nu ska ha ändrat DELAY så att denna är anpassad den verkliga miljön och inte den simulerade. Utför ändringarna, assemblera, rätta eventuella fel och ladda Main2 till labsystemet. Starta Main2 med tr 1000 för trace. Välj nu först att sätta brytpunkter i SUB2 och SUB7. ge kommandot go för att starta exekveringen. Tryck sedan på tangentnummer 7 och 2 och verifiera att du fortfarande hamnar i dessa (tomma) subrutiner. Rätta eventuella fel. Tryck RESET på MC12 och kör, go Välj sedan att starta borrmaskinen genom att ge kommando nr 0. Kontrollera att borret roterar och att en ljusdiod på borrmaskinen tänds. Välj sedan att stanna borrmaskinen genom att ge kommando nr 1. Kontrollera att borret stannar och att lysdioden på borrmaskinen släcks. Utför följande oberoende av om ditt program fungerar eller inte eftersom detta ger dig övning i felsökning. Om exempelvis START inte fungerar bör du studera listfilen och undersöka vilken startadress denna subrutin har. Kanske skall du även ladda Main2 på nytt till MC12 då ett felande program kan skriva sönder sig själv. Starta med trace från adress 1000, ange brytpunkt för START och välj go. När du gett kommando 0 bör programmet stanna på START s första instruktion. Om så inte är fallet borde ditt hopp inte fungera som tänkt. (Hopp till SUB2 och SUB7 fungerade ju ovan.) Om du kommer till START kan det vara lämpligt att i fortsättningen utnyttja go n - kommandot under trace då detta kör en hel subrutin. Stega dig vidare men go n tills du utfört OUTZERO. (Stanna på instruktionen nedanför). Du bör nu observera att bit 2 är ettställd på borrmaskinen och övriga bitar skall vara oförändrade. Om så inte är fallet kan det vara problem OUTZERO eller kanske kopian av styrordet. Undersök DCCopy genom att använda mm-kommandot för att läsa kopians värde. Adressen till DCCopy hittar du i listfilen. Du kan återstarta trace genom att enbart ge kommandot 14

15 Laboration 2 tr (utan adress) efter att du utnyttjat mm-kommandot. Du kommer då att återstarta trace på den adress du var tidigare med samma registerinnehåll och samma stack. Fortsätt med go n -kommandot genom resterande del av START. Observera speciellt vad som händer när du ger detta kommandot när du står på RTSinstruktionen. Det verkar som det hänger. När du ger go n -kommandot under trace begär du att stanna på nästföljande instruktion i minnet, dvs. instruktionen efter RTS. Det är bara det att du inte kommer dit då du gör ett återhopp. START har därmed slutförts och det troliga är att du nu hänger i tangentbordsrutinen och inväntar ett nytt kommando. Rätta eventuella fel, spara alla dina filer och visa upp resultatet för en handledare. Laborationsuppgift 2.3: Fortsätt nu med Main3 där du lägger till rutinerna DOWN och UP om du förberett dessa. Om inte kan du försöka göra dessa nu. Om du vill jobba vidare i simulatorn eller vidare med labbsystemet bestämmer du. Observera bara att du bör ha två definitionsfiler, där en gäller för hårdvaran och en gäller för simulator. Du har nu använt olika monitorkommandon för felsökning och test verifierat att ditt huvudprogram för borrmaskinen fungerar korrekt testat dina två första subrutiner (OUTZERO och OUTONE) på borrmaskinen ett fungerande programskal som du enkelt kan lägga till nya subrutiner för de övriga funktionerna hos borrmaskinen. BRA JOBBAT!!!! 15

16 Laboration 3 Laboration nr 3 behandlar Pseudoparallell exekvering Följande uppgifter ur Arbetsbok för MC12 ska vara utförda innan laborationen påbörjas. Du ska på begäran av laborationshandledare redovisa dessa. Uppg Sign. Följande hemuppgifter ska vara utförda innan laborationen påbörjas. Utför uppgifterna 42, 43, 44 och 45 i arbetsboken. Dessa illustrerar hur avbrott sker i ett MC12-system. Försäkra dig om att du behärskar IO-simulatorn ML19 då denna är en kopia av hårdvaran du ska jobba med i labbet. Studera ML19 (IO-simulator) under ETERMS hjälpmeny Hem- Uppgift Följande laborationsuppgift ur denna del av laborations-pm skall utföras och redovisas för en handledare för godkännande. Laborationsuppgift Sign. 3.2 Hemuppgift 3.1: Implementera resterande borrmaskinrutiner fram tom uppgift 106 (Main7) i arbetsboken. Testa alla rutiner i simulatorn och verifiera korrekt funktion enligt specifikationerna. Laborationsuppgift 3.1: Förra gången du var i labbet testade du din Main2, 3 eller 4-rutin beroende på hur långt du kom. Testa ut din senaste rutin på nytt för att verifiera att hårdvaran är korrekt och att din senaste Mainx är intakt. Laborationsuppgift 3.2: Ändra adressdefinitioner, konstanter mm så att du kan testa din Main7 på hårdvaran i labbet. Ladda nu ner Main7 till labbsystemet. Verifiera att alla kommandon (0-7) fungerar som tänkt. (OBS! Vi förutsätter här att du i Laborationshäfte 1 åtminstone jobbade med Main2 där du testade hela programskalet. Om du inte gjort detta tidigare, gå tillbaka till Laborationshäfte nr 1 och säkerställ att Main2 fungerar.) Du ska nu ha ett fungerande borrprogram. Gör Save All för att spara Main7. Vi skall utnyttja denna fil längre fram. Hemuppgift 3.2: 16

17 Laboration 3 Basadressen för ML19 är $0DC0 (se även Appendix A i arbetsboken). Det innebär som bekant att en skrivning på adress $0DC2 nollställer vippa ett och en skrivning på adress $0DC3 nollställer vippa två. Laborationsuppgift 3.3: Studera komponenttrycket (vita texter och figurer) på ML19 som sitter överst på mikrodatorsystemet. Jämför med bilden av IO-simulatorn. Du har två tryckknappar (S1 och S2) som motsvarar Event1 och 2 på IO-simulatorn. Vidare finns ett antal ljusdioder. Försök lista ut ljusdiodernas betydelse när du fortsätter denna laborationsuppgift. Tryck på S1 och på S2. Om lysdioderna på ML19 var släckta från början tändes dessa nu. Avbrotten var/är aktiverade och avbrottsvipporna var/är ettställda. För att kvittera ett avbrott ger du ni en skrivning med mm-kommandot på adress $0DC2 och sedan en skrivning på adress $0DC3. Avbrottsvipporna nollställs oberoende av vilket värde du skriver. Lysdioderna släcks. Gör en läsning på adress $0DC0 som är ML19 s statusregister. Detta skall nu vara nollställt. Studera lysdioderna på ML19 och tryck på S1. Gör därefter en ny läsning av statusregistret och verifiera att b 0 är ettställd. Studera lysdioderna på nytt och tryck på S2. Gör därefter ännu en läsning av statusregistret och verifiera att b 1 också är ettställd. Ett teoriavsnitt: Parallell programexekvering. Din slutgiltiga laborationsuppgift är att köra borrprogrammet (Main7) och displayrutinen (Display) på MC12 så att det verkar som att dessa körs samtidigt: de körs pseudoparallellt. Du skall nu köra två program samtidigt med ett mikrodatorsystem. Programmen skall till synes styras parallellt och därför inför vi ett avbrottsdrivet system där processorn växelvis styr den ena och sedan den andra. Växlingen går så snabbt att användaren upplever att de styrs parallellt. Programväxlingen sker med avbrottsrutinen SWITCH. Programmen (Borr och Display) och dess dataareor skall placeras i minnet enligt Figur 3.1. Borr (Main7) har sin dataarea med tillhörande stack och Display har sin dataarea med tillhörande stack. I laborationssystemet (på laborationskort ML19) finns en klockgenerator med frekvensen 400 Hz. Denna används för att generera avbrott till processorn. Detta innebär att avbrott sker var 2,5 ms. Varje gång avbrott sker startas avbrottsrutinen (SWITCH) som växlar program. Vi betecknar detta processbyte. Adr FFFF HC12 Regs IO-Portar INIT och SWITCH BORR Dataarea B DISPLAY Dataarea D Ledigt RWM ROM (DBG12 Monitor) Figur

18 Laboration 3 Tidigare har vi haft ett huvudprogram som blivit avbrutet. Huvudprogrammet har återstartats när avbrottsrutinen är slut. Jämför med Figur 3.2. Du bör vara väl bekant med vad som sker vid ett avbrott, nämligen: huvudprogrammets status sparas på stacken (avbrotts-) servicerutinen startar och betjänar avbrottet orsaken till avbrott avlägsnas huvudprogrammets status återhämtas från stacken återhopp till huvudprogrammet Avbrotts -signal Figur 3.2 Huvudprogram Avbrottsrutin När vi nu har två (huvud-) program så ändras förutsättningarna något. Figur 3.3 visar hur programmet BORR exekverar. När nu ett avbrott inträffar startas avbrottsrutinen i vanlig ordning. Först sparas BORR:s status på stacken. Avbrottsrutinens uppgift är stanna BORR och starta Display. Avbrottsrutinen avslutas som bekant med ett återhopp till huvudprogrammet. Detta innebär att avbrottsrutinens uppgift är att förbereda för ett återhopp till Display. Avbrottssignal BORR SWITCH DISPLAY Detta sker genom att ändra stackpekaren så att denna pekar ut Display s stack. På så sätt (åter-) startas Display vid RTI. När nästa avbrott inträffar skall en liknande händelse inträffa. Nu är det Display som skall stanna och BORR som skall starta (Figur 3.4). På detta sätt kommer programmen växelvis att exekvera. Då växlingen sker 400 ggr per sekund upplevs detta som att programmen körs samtidigt (pseudoparallellt). BORR SWITCH Figur 3.3 DISPLAY Avbrottssignal Studera nu Figur 3.5. Tiden som SWITCH upptar kan du bortse från i detta sammanhang. BORR och Display exekveras ca 2,5 ms vardera. Figur 3.4 I vår miljö definierar vi det program som för tillfället exekveras av processorn att vara i tillståndet RUNNING. Det program som inte exekveras och är redo att startas om på nytt, säger vi är i tillståndet READY. Så alltså när BORR är i tillståndet RUNNING så är Dispaly i READY och vice versa. BORR DISPLAY RUNNING READY READY RUNNING SWITCH 2,5 ms 2,5ms 2,5ms Figur

19 Laboration 3 Observera att vid avbrott så startas SWITCH och vid utförande av RTI så startas det program som var READY. BORR DISPLAY IRQ SWITCH 2,5 ms 2,5ms 2,5ms RTI Figur 3.6 Vi sammanställer här vad som skall ske i SWITCH Förutsätt att BORR exekveras. Då skall följande ske: BORR s statuts placeras på stacken BORR s stackpekare skall sparas DISPLAY s stackpekare skall hämtas Orsaken till avbrottet måste avlägsnas (nollställa avbrottsvippan) Slutligen, RTI Hemuppgift 3.3: Skriv en avbrottshanterare SWITCH som byter stackpekare mellan BORR och Display. Spara SWITCH under filnamnet MainStart.s12. Ta inte hänsyn till hur det startas första gången när du skriver SWITCH utan fokusera på att ett antal processbyten redan har skett. Hur det startas första gången återkommer vi till nedan. En skrivning på den symboliska adressen IrqRes nollställer avbrottsvippan. Du behöver inte assemblera filen. Vi skall strax lägga till rutinen INIT som gör att hela systemet startar. Slut på hemuppgift 3.3 Hur startas detta första gången? Det krävs en rutin INIT som initierar systemet så att avbrott registreras och att de två processerna startas korrekt första gången de sätts i tillståndet RUNNING. Vi förutsätter att efter att INIT körts så startas BORR som första process. Första frågan: Hur startas BORR första gången? BORR startas lämpligen med en vanlig JMP till BORR s startadress efter det att INIT har exekverat klart. Andra frågan: Hur startas DISPLAY första gången? Display startar genom ett RTI efter det att SWITCH körts första gången. Detta innebär att stacken till DISPLAY måste iordningställas innan det första avbrottet inträffar. 19

20 Laboration 3 Studera DISPLAY s stack i marginalen vid första RTI. När RTI exekveras i samband med IRQ-avbrott hämtas hela processorns status (alla register hämtas från stacken). Vidare krävs det att CC-registret som hämtas måste ha sin I-flagga nollställd. När Bottom Of Stack (BOS) är definierad måste därför stacken byggas upp enligt Figur 3.7. Studera avsnitt 2 i arbetsboken som beskriver avbrott. Använd följande programskal för MainStart: * Filen MainStart.s12 USE IODEFS.S12 ORG START NOP LDS #BOS JSR INIT JMP BORR USE BORR.s12 USE Display.s12 CC som BORR läser in måste ha sin I-flagga nollställd för att kunna bli avbrutet Återhoppsadressen måste vara DISPLAY s startadress BOS-9 BOS Figur 3.7 CC B A X H X L Y H Y L PC H PC L Hemuppgift 3.4: Skriv initieringsrutinen INIT som du placerar först i filen MainStart.s12 (innan rutinen SWITCH) se ovan. Rutinen skall: skapa stackar för BORR och Display (INIT och BORR kan utnyttja samma stack). initiera systemet, så att det känner av avbrott och slutligen startar upp BORR Kopiera MAIN7.s12 till BORR.s12 jobba vidare med detta filnamn. Ändra programmets startadress till $1500. (ORG $1500). Fundera igenom hur du vill ha dina IO-definitioner (USE IODEFS.s12). Du kan ha alla definitioner i MainStart.s12 eller några i MainStart.s12 och några i BORR.s12. Ändra vid behov. Kommentera bort initieringar som görs i MainStart.s12, exempelvis initiering av stacken. Kopiera Display.s12 till Display2.s12 jobba vidare med detta filnamn. Ändra programmets startadress till $2000. (ORG $2000). Fundera igenom hur du vill ha dina IO-definitioner (USE IODEFS.s12). Du kan ha alla definitioner i MainStart.s12 eller några i MainStart.s12 och några i Display2.s12. Ändra vid behov. Kommentera bort initieringar som görs i Display2.12, exempelvis initiering av stacken. Assemblera Mainstart.s12 och rätta eventuella fel. Kanske har du använt samma symboler som Loop, Snurra etc. och definierat IO-portar två gånger mm. 20

21 Laboration 3 Kontrollera nu listfilen och försäkra dig om att programmen inte överlappar varandra i minnet. Ändra ORG-direktiven i BORR/Display2 om så är fallet. Slut på hemuppgift 3.4 Att testa programmen i simulatorn. I den simulerade miljön är svårt att behandla sådana snabba processbyten (400 processbyten per sekund). Vidare är det definitivt omöjligt att följa händelseförloppet vid test av programvaran i denna hastighet. Därför är det lämpligt att under simuleringsarbetet utnyttja en av de avbrottsvippor som finns tillgängliga i IOsimulatorn. (Figur 3.8). Då det är du som klickar på Eventknappen i IO-simulatorn är det du som bestämmer när SWITCH skall starta. Du kan därför lugnt studera händelseförloppet när du själv klickar i fönstret för avbrottsvippan. BORR kommer att stanna, SWITCH utför processbytet och DISPLAY startas. Hemuppgift 3.5: När du testar nu kan det vara lämpligt att använda Run Fast, brytpunkter och Step. Se till att du har rätt konstanter för dina delay-rutiner. Ladda MainStart till simulatorn. Välj nu att sätta följande brytpunkter: En i SWITCH (Studera listfilen för aktuell adress) En i BORR ($1500) Och en i Display2 ($2000) Aktivera sedan de IO-simulatorer du behöver under simuleringen, nämligen en avbrottsvippa, en borrmaskin, ett tangentbord (Interface ML15) och en Display (Interface ML5). Starta nu programmet MainStart ($1000) och verifiera att du stannar på brytpunkten i BORR. Verifiera att I-flaggan i CC-registret är nollställd. Klicka nu på Run för att starta BORR. Figur 3.8 $0000 $1000 $1500 $2000 $4000 Undersök ett par funktioner hos borrmaskin och att denna fungerar som tänkt. Figur 3.9 Välj nu att generera ett avbrott genom att klicka på Event 1 på avbrottsvippan. HC12 Regs IO-Portar INIT SWITCH BORR Dataarea B DISPLAY Dataarea D Ledigt RWM ROM (DBG12 Monitor) 21

22 Laboration 3 Du bör nu stanna på brytpunkten i SWITCH. Om så inte är fallet bör du studera din avbrottsvektor, då denna troligen är fel. Studera även simulatorns Interruptfönster. Stega dig nu fram, instruktion för instruktion och observera speciellt vad som händer när RTI utförs. Du bör efter RTI-instruktionen ha kommit till början av Display2. Du bör observera en brytpunkt och att PC har värdet $2000. Sker inte detta, starta då om på nytt och studera innehållet i register S när du står vid RTIinstruktionen. Ställ dig sedan frågan: Pekar S på CC-registret som skall finnas överst på Display s stack? Vidare utför RTI på nytt och studera PC s innehåll, verkar detta PC-värde rimligt? Rätta eventuella fel. När SWITCH fungerar ta då bort brytpunkterna, och starta exempelvis REFPO eller AUTO på borrmaskinen. Klicka sedan på Event 1 för att växla process och starta Displayrutinen. Du kan nu klicka på Event1 upprepade gånger för att verifiera att systemet verkar fungera korrekt - att BORR och Displays arbeten fortsätter växelvis på ett korrekt sätt när du klickar på Event-knappen. Klarar du att klicka ett par hundra gånger per sekund upplever du det som borrmaskinerna styrs parallellt. Slut på hemuppgift 3.5 När du nu simulerat är det du med Event1-knappen som växlat program. I ett verkligt system finns någon form för klock- eller pulsgenerator som är ansluten till processorns avbrottsingång. Se Figur Pulsgenerator 400 Hz CS vid skrivning 1 1D C1 R Q' Till processorns IRQ Att generera 400 avbrott per sekund har vi tyvärr inte möjlighet till i vår simulerade miljö så vi får nöja oss med den verifiering vi genomfört ovan och eventuellt testa våra program BORR och Display2 på ett verkligt system i stället. Laborationsuppgift 3.4: Figur 3.10 Modifiera eventuellt konstanterna i din programvara så att det fungerar i hårdvaran. Observera att när du använder labbsystemet så ska du använda avbrottsvektorn $3FF2 Ladda och testa din MainStart.s12 på hårdvaran. Testa programmen i hårdvaran på samma sätt som du gjorde tidigare i simulatorn. Sätt brytpunkter i BORR och Display. Verifiera att du stanna på dessa brytpunkter när du trycker på S1. Se till att hela programpaketet fungerar. 22

23 Laboration 3 Ett bra visuellt sätt att se programväxlingen är att starta upp REFPO för borrmaskinen när du trycker på S1. Det ser då ut som borrmaskinen dör och Display startas upp när du trycker på S1. Då du gör ännu ett tryck på S1 verkar det som Display dör och borrmaskinen fortsätter. Ge ett antal tryck på S1 och studera förloppet. När du känner dig nöjd, kontakta då en assistent som hjälper dig att växla till pulsgeneratorn så att du får ca 400 avbrott i sekunden. Testa rutinen REFPO!. Går denna långsammare än tidigare???? Studera även Display. Verkar det som om denna blinkar/fladdrar på ett annat sätt nu än vad den gjorde i förra labbet???? Försök förklara varför och diskutera nu eller sedan med en assistent. Du har nu implementerat ett mini-realtidssystem (tidsstyrd) där du kört två processer på ett mikrodatorsystem. (Detta kan enkelt ökas till flera processer) skrivit en massa assemblerprogram (vid laboration 6 använder du programspråket C och gör ungefär samma sak fast på ett smidigare sätt.) BRA JOBBAT!!!! 23

24 Appendix Appendix: MC12 IO-adresser för laborationskort Laborationskort Noter ML4 Borrmaskin är också ansluten till dessa adresser. OBS: Skillnad mellan IOsimulator och fysisk hårdvara. Register/Port Symboliska namn Adress (hexadecimal form) Simulator (lämpligt val) Out In ML5 De här angivna adresserna för ML5 gäller PAL-revision 2. Out 0C00 0C00 In 0C01 0C01 Out 0C02 0C02 Out 0C03 0C03 ML13 ML15 ML19 Ctrl/Status 0B00 0B00 IRQ Ctrl/Status 0B01 0B01 Kbd Data 09C0 09C0 Kbd Status 09C1 09C1 Led Mode 09C2 09C2 Led Ctrl/Data 09C3 09C3 Status 0DC0 0DC0 Kvittera ev 1 0DC2 0DC2 Kvittera ev 2 0DC3 0DC3 24

Maskinorienterad programmering del 1

Maskinorienterad programmering del 1 Institutionen för data och informationsteknik LP3-2014, RoJ/RS/JS Maskinorienterad programmering del 1 Laborationer 1 och 2 Laborationsserien omfattar totalt fem laborationsmoment som utförs i tur och

Läs mer

Maskinorienterad programmering Laborationer för D/Z/GU (EDA480,EDA485, DIT151)

Maskinorienterad programmering Laborationer för D/Z/GU (EDA480,EDA485, DIT151) Institutionen för data och informationsteknik. Roger Johansson, Jan Skansholm och Rolf Snedsböl VT 2012 Maskinorienterad programmering Laborationer för D/Z/GU (EDA480,EDA485, DIT151) Detta laborations-pm

Läs mer

Laborationsmoment t 2 - En Borrautomat

Laborationsmoment t 2 - En Borrautomat Maskinorienterad Programmering 2/2 Laborationsmoment t 2 - En Borrautomat t Genomgång g av laborationer: Programutveckling i assembler Tangentbord för borrkommando Operatör Mikrodator Anpassnings- elektronik

Läs mer

Laborationsmoment t 2 - En Borrautomat

Laborationsmoment t 2 - En Borrautomat Maskinorienterad Programmering 21/211 Genomgång g av laborationer: Programutveckling i assembler Arbetsbok för MC12, kapitel 4 1 Laborationsmoment t 2 - En Borrautomat t Tangentbord för borrkommando Operatör

Läs mer

Laborationsmoment 2 - En Borrautomat

Laborationsmoment 2 - En Borrautomat Maskinorienterad Programmering 2011/2012 : Programutveckling i assembler Arbetsbok för MC12, kapitel 4 1 Laborationsmoment 2 - En Borrautomat Tangentbord för borrkommando Operatör Mikrodator Anpassningselektronik

Läs mer

Laborationsmoment 2 - En Borrautomat

Laborationsmoment 2 - En Borrautomat Maskinorienterad Programmering 2011/2012 : Programutveckling i assembler Arbetsbok för MC12, kapitel 4 1 Laborationsmoment 2 - En Borrautomat Tangentbord för borrkommando Operatör Mikrodator Anpassningselektronik

Läs mer

Arbetsbok för MC12, kapitel 4 Klocka. Genomgång av laborationer. New disc Här väljer du olika arbetsstycken

Arbetsbok för MC12, kapitel 4 Klocka. Genomgång av laborationer. New disc Här väljer du olika arbetsstycken Maskinorienterad Programmering 2011/2012 Laborationsmoment 2 - En Borrautomat : Programutveckling i assembler Tangentbord för borrkommando Operatör Mikrodator Anpassningselektronik Borrmaskin Arbetsbok

Läs mer

Laboration nr 4 behandlar Assemblerprogrammering

Laboration nr 4 behandlar Assemblerprogrammering Laboration nr 4 behandlar Assemblerprogrammering Följande upp gifter ur Arbetsbok för DigiFlisp ska vara utförda som förberedelse för laborationen. Du ska på begäran av laborationshandledare redogöra för

Läs mer

Programmering av inbyggda system

Programmering av inbyggda system Programmering av inbyggda system Genomgång inför laborationer 1-3: Programutveckling i assembler Genomgång inför laborationer 1-3/RoJ 1 Laborationsmoment 2 - En Borrautomat Tangentbord för borrkommando

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

LEU240 Mikrodatorsystem

LEU240 Mikrodatorsystem Institutionen för data- och informationsteknik 2011-10-11 LEU240 Mikrodatorsystem Vi har tidigare i olika sammanhang sett att det är önskvärt att kunna använda ett högnivåspråk som C för att skriva program

Läs mer

Genomgång av laborationer. New disc: Här väljer du olika arbetsstycken. Control -sektion: Styrord till borrmaskinen

Genomgång av laborationer. New disc: Här väljer du olika arbetsstycken. Control -sektion: Styrord till borrmaskinen Maskinorienterad Programmering 212/213 Laborationsmoment 2 - En Borrautomat : Programutveckling i assembler Tangentbord för borrkommando Operatör Mikrodator Anpassningselektronik Borrmaskin Arbetsbok för

Läs mer

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

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!) Avbrottshantering Övningsuppgifter 2013 Lösningsförslag Uppgift 1-19 (eservation för diverse fel!) 1 Koppling: Q 1 Till bit 0 INPOT ÖKA A 1 /W 1 Write 8FF 16 NOLLA Write 8FFF 16 Q 2 1 Q 2 Till bit 1 INPOT

Läs mer

BDM12 Användarbeskrivning. Introduktion

BDM12 Användarbeskrivning. Introduktion Versioner/ändringar 1.0 2003-07 1.01 BUGFIX: FLASH unsecure algoritm 1.02 Fördröjning vid flash-prog. Statusutskrift under programmeringen. Programmeringsalgoritmen hanterar nu även 'bankade' minnet. Översättning

Läs mer

Programmering av inbyggda system Laborationer för D, Z och GU (EDA481, EDA486 och DIT152)

Programmering av inbyggda system Laborationer för D, Z och GU (EDA481, EDA486 och DIT152) Institutionen för data och informationsteknik LP4-2014/15, RoJ/RS/JS Programmering av inbyggda system Laborationer för D, Z och GU (EDA481, EDA486 och DIT152) Laborationsserien omfattar totalt fem laborationsmoment

Läs mer

Detta häfte innehåller anvisningar om förberedelser och genomförande av fyra laborationer.

Detta häfte innehåller anvisningar om förberedelser och genomförande av fyra laborationer. Institutionen för data och informationsteknik. Laborationshäfte i Digital- och datorteknik EDA215, EDA432, EDA451, DIT790 Detta häfte innehåller anvisningar om förberedelser och genomförande av fyra laborationer.

Läs mer

Maskinorienterad programmering. Arbetshäfte för laboration nr 1-3. Laborant: Godkännande - laboration: Data- och informationsteknik, datorteknik

Maskinorienterad programmering. Arbetshäfte för laboration nr 1-3. Laborant: Godkännande - laboration: Data- och informationsteknik, datorteknik Data- och informationsteknik, datorteknik 1 2 3 4 5 6 7 8 9 10 11 12 U Maskinorienterad programmering Arbetshäfte för laboration nr 1-3 Utvecklingsverktyget Eterm Programmering i assemblerspråk Borrmaskinsstyrning

Läs mer

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne Programallokering Att placera program i flashrespektive RAM-minne Program i FLASH-minne Bara lokala variabler Globala oinitierade variabler Globala initierade variabler Program med avbrott Program i RAM-minne

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2016-03-17 Maskinorienterad programmering Laborationer (1-3 av 5) Detta laborations-pm innehåller anvisningar om förberedelser

Läs mer

Laborationer med MC12 ML4 Grundläggande assemblerprogrammering

Laborationer med MC12 ML4 Grundläggande assemblerprogrammering Grundläggande assemblerprogrammering GMV 2004,2005 Läromedel på elektronisk form, LOMEK, får kopieras fritt. Du ska redovisa dina laborationsresultat vid kontrollstationer. Då du nått en sådan, ska du

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2016-10-08 Maskinorienterad programmering Laborationer Detta laborations-pm innehåller anvisningar om förberedelser inför genomförande

Läs mer

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering) Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i häftet Ext-20. En del korta programavsnitt skrivs med assemblerspråk i övningsuppgifterna

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

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.03 Februari 2019 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

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

Laboration nr 3 behandlar

Laboration nr 3 behandlar (2013-04-20) Laboration nr 3 behandlar Konstruktion och test av instruktioner (styrsignalsekvenser) för FLISP Följande uppgifter ur Arbetsbok för DigiFlisp ska vara utförda som förberedelse för laborationen.

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

F8: Undantagshantering

F8: Undantagshantering F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund

Läs mer

DBG11 Användarbeskrivning - Utgåva 2

DBG11 Användarbeskrivning - Utgåva 2 Introduktion DBG11 är en monitor/debugger för MC68HC11-baserade mikrodatorer. Denna utgåva har uppdaterats och gäller även MC11 med SP2-uppgradering. DBG11 ingår i en serie likartade monitor/debugger's

Läs mer

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen????

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen???? Rep Konstruktion av en Printer-Port ynkroniseringsproblem Villkorlig / ovillkorlig överföring Busy Wait och Polling Handskakningssignaler AVBROTT!!! svektor I-flagga svippa sdriven Printerport I DAG fo

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Externa avbrott Anslutning av extern avbrottsvippa, programmering med konfigurering och hantering av externa avbrott. Introduktion till time-sharing, enkel task-switch. Ur innehållet: NVIC och EXTI (SYSCFG)

Läs mer

LABORATION DATORTEKNIK Y DATORTEKNIK D

LABORATION DATORTEKNIK Y DATORTEKNIK D LABORATION DATORTEKNIK Y DATORTEKNIK D Avbrottsprogrammering på M68008 Version: 3.2 203 (OVA) Namn och personnummer Godkänd Till laboranten Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG

DBG identifierar därefter sig genom utskrift av namn och version. Se även Disposition av adressrum nedan. Följande kommandon accepteras av DBG Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.02 Februari 2018 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

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

Datorprojekt, del 1. Digitala system 15 p

Datorprojekt, del 1. Digitala system 15 p Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 1 Projektet består i att skapa en klocka där tiden visas

Läs mer

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen

Läs mer

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

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) 1. Motivation ROM. 8kbyte 2 3 2 10 byte 13 Adressbitar [A12,A0] direkt till ROM-kapsel. RWM. 32kbyte 2 5 2 10 byte 15 Adressbitar

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

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.

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

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

Maskinorienterad programmering

Maskinorienterad programmering 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

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

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

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 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010 STYRNING - i Mikrodatorteknik för U2 2010 1. Uppgift M10 (5p) aug-09 Skriv ett program i PIC-assembler som - gör PortB till utport - ettställer bit 0, 3 och 4 i PortB - nollställer bit 5 och 6 i PortB

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

Laborationer med MC11 ML4 Grundläggande assemblerprogrammering

Laborationer med MC11 ML4 Grundläggande assemblerprogrammering Grundläggande assemblerprogrammering GMV 2002 Läromedel på elektronisk form, LOMEK, får kopieras fritt Du ska redovisa dina laborationsresultat vid kontrollstationer. Då du nått en sådan, ska du därför

Läs mer

Föreläsningsanteckningar 3. Mikroprogrammering II

Föreläsningsanteckningar 3. Mikroprogrammering II Föreläsningsanteckningar 3. Mikroprogrammering II Olle Seger 2012 Anders Nilsson 2016 1 Inledning Datorn, som vi byggde i förra föreläsningen, har en stor brist. Den saknar I/O. I denna föreläsning kompletterar

Läs mer

Laborationer med MC68 ML4 Grundläggande assemblerprogrammering

Laborationer med MC68 ML4 Grundläggande assemblerprogrammering Grundläggande assemblerprogrammering GMV 2002-2004 Läromedel på elektronisk form, LOMEK, får kopieras fritt Du ska redovisa dina laborationsresultat vid kontrollstationer. Då du nått en sådan, ska du därför

Läs mer

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Institutionen för data och informationsteknik. Roger Johansson, Ulf Assarsson 2017-09-27 Maskinorienterad programmering Laborationer Detta laborations-pm innehåller anvisningar om förberedelser inför genomförande

Läs mer

3. Mikroprogrammering II

3. Mikroprogrammering II 3. Mikroprogrammering II lite repetition in/ut-matning avbrott på OR-datorn hoppinstruktion labben Olle Roos dator LDA 000 12 ADD 100 7 STA 000 13 12 1 13 8 13 6 8 0 18,1,11 2,3,5,11 7,8,11 17,10 18,1,11

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

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg

Läs mer

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

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink 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

Exempel på tentamen 1

Exempel på tentamen 1 Maskinorienterad programmering - har du uppnått kursmålen Exempel på tentamen Tisdag xx januari 2005, kl. 08.30-2.30 i M-salar Examinatorer Stig-Göran Larsson, tel. 772 693 Jan Skansholm, tel. 772 02 Kontaktpersoner

Läs mer

microlf, 1998-2006, Alla rättigheter förbehålles

microlf, 1998-2006, Alla rättigheter förbehålles microlf ML örrsimulator ML ML är ett laborationskort med enkla och intuitiva funktioner avsedda att illustrera en automatiskt styrd dörr. örren illustreras av en ljusdiodramp där tända ljusdioder indikerar

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

Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM: 2010-12-08

Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM: 2010-12-08 UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM: 2010-12-08 Vop handledning Användarhandledning till Vop applikationen Bring Technologies AB Innehållsförteckning 1 Introduktion...1

Läs mer

KALKYLATOR LABORATION4. Laborationens syfte

KALKYLATOR LABORATION4. Laborationens syfte LABORATION4 KALKYLATOR Laborationens syfte I denna laboration ska en enkel kalkylator konstrueras med hjälp av VHDL och utvecklingsverktyget Vivado från Xilinx. Hårdvaran realiseras på det redan bekanta

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

Läs mer

Systemkonstruktion SERIEKOMMUNIKATION

Systemkonstruktion SERIEKOMMUNIKATION Systemkonstruktion SERIEKOMMUNIKATION Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-04-26 Syfte Laborationen syftar till att ge studenten tillfälle att närmare bekanta sig med RS-232-protokollet,

Läs mer

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer

Läs mer

Polling (cyklisk avfrågning) Avbrott

Polling (cyklisk avfrågning) Avbrott Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Följande kommandon accepteras av DBG. Hantera brytpunkter i användarprogram

DBG identifierar därefter sig genom utskrift av namn och version. Följande kommandon accepteras av DBG. Hantera brytpunkter i användarprogram Introduktion DBG32 är en monitor/debugger för MC683xx-baserade mikrodatorer. DBG32 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12 DBG32

Läs mer

CE_O3. Nios II. Inför lab nios2time

CE_O3. Nios II. Inför lab nios2time IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG

DBG identifierar därefter sig genom utskrift av namn och version. Se även Disposition av adressrum nedan. Följande kommandon accepteras av DBG Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12

Läs mer

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

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå Aktivera Kursens mål: LV4 Fo10 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

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar

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

Laboration 2 i Datorteknik- Assemblerprogrammering II

Laboration 2 i Datorteknik- Assemblerprogrammering II Högskolan i Halmstad 1 (8) - Assemblerprogrammering II Målet med laborationen är att få begrepp om Subrutiner. in/utparametrar. Lokala variabler Maska in bitar till ett register Konstruktion av subrutiner

Läs mer

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:

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: Aktivera Kursens mål: 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 maskininstruktioner

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

Undantagstyper. Maskinorienterad Programmering 2010/2011. MC68HC12, Stencil Assemblerprogrammering.pdf CPU12 Reference Guide

Undantagstyper. Maskinorienterad Programmering 2010/2011. MC68HC12, Stencil Assemblerprogrammering.pdf CPU12 Reference Guide Maskinorienterad Programmering 200/20 MC68HC2, Stencil Assemblerprogrammering.pdf CPU2 Reference Guide Arbetsbok b för MC2, avsnitt 2 Exekveringstillstånd tå Processorn befinner sig alltid i något av tillstånden:

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok

Läs mer

Programmera i teknik - kreativa projekt med Arduino

Programmera i teknik - kreativa projekt med Arduino NYHET! Utkommer i augusti 2017 Smakprov ur boken Programmera i teknik - kreativa projekt med Arduino av Martin Blom Skavnes och Staffan Melin PROJEKT LJUS s 1 I det här projektet kommer du att bygga en

Läs mer

CPU. Carry/Borrow IX. Programräknare

CPU. Carry/Borrow IX. Programräknare Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister

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

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

Programmering av inbyggda system

Programmering av inbyggda system Programmering av inbyggda system Synkronisering och undantag Ur innehållet: Synkronisering: hur hanteras situationer när datorn ska kommunicera med en annan enhet med okänd arbetstakt? Vi ansluter en skrivare

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

Datorteknik 2 (AVR 2)

Datorteknik 2 (AVR 2) Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra

Läs mer

VELKOMMEN!!!! SYFTE o MÅL. till EDA485/DIT151. Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf

VELKOMMEN!!!! SYFTE o MÅL. till EDA485/DIT151. Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf VELKOMMEN!!!! till EDA485/DIT151 Maskinorienterad Programmering önskar Jan o Rolf MOP OH LV1A 1 YFTE o MÅL Programmera i språk som ligger nära processorn (maskinen) Ge en helhetsbild av hur vi har nytta

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

Datorsystem Laboration 2: Minnesmappade bussar

Datorsystem Laboration 2: Minnesmappade bussar Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................

Läs mer

Tentamen. DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU. Tisdag 15 december 2009, kl

Tentamen. DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU. Tisdag 15 december 2009, kl Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU Tisdag 15 december 2009, kl. 08.30-12.30

Läs mer

microlf, , Alla rättigheter förbehålles

microlf, , Alla rättigheter förbehålles microlf ML Tangentbord/Display gränssnitt ML ML är ett lättanvänt laborationskort för anslutning av tangentbord/ displaykortet ML. Kortet är bestyckat med ett logikblock som avkodar tangentbordet och ett

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

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

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i

Läs mer

Programmering. Scratch - grundövningar

Programmering. Scratch - grundövningar Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden

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

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

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

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

LABORATIONSINSTRUKTION

LABORATIONSINSTRUKTION Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION PLC-styrning av ett minimalt parkeringsgarage KURS El- och styrteknik för tekniker ET 1015 INNEHÅLL LAB NR 4 Ver 1.0 1. Inledning 2. Laborationskortet

Läs mer

Till assemblersystemet Zuper 80 Assembler krävs en SPECTRAVIDEO 328/318+minst 16K ram extra.

Till assemblersystemet Zuper 80 Assembler krävs en SPECTRAVIDEO 328/318+minst 16K ram extra. ZZZZZ 888 000 A Z 8 8 0 0 A A ZZ 8 8 0 0 A A ZZ u u pppp eee r rrr 888 0 0 AAAAA ZZ u u p p e e rr --- 8 8 0 0 A A ZZ u u p p e ee r 8 8 0 0 A A Z u u p p e r 8 8 0 0 A A ZZZZZ uuuu pppp eeee r 888 000

Läs mer

Maskinorienterad Programmering 2010/2011. Maskinorienterad Programmering 2010/2011. Skrivarporten, p Arbetsbok MC12, avsnitt 2

Maskinorienterad Programmering 2010/2011. Maskinorienterad Programmering 2010/2011. Skrivarporten, p Arbetsbok MC12, avsnitt 2 Maskinorintrad Programmring 2010/2011 Skrivarportn, p Arbtsbok MC12, avsnitt 2 Ur innhåt: Vi ansutr n skrivar Assmbrprogrammring - skrivarportn 1 Skrivarport Arbtsbok, kap. 2 Konstruktion av n Printr-Port

Läs mer