Laboration 2 i Datorteknik- Assemblerprogrammering II
|
|
- Rickard Blomqvist
- för 8 år sedan
- Visningar:
Transkript
1 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 Strukturering av en större kod med hjälp av subrutiner Uppgift l: Bekanta sig med subrutiner Syfte Att bekanta sig med två färdigskrivna subrutiner. Få förståelse för begrepp som lokala variabler (register) och inparameter och utparameter. Ladda hem filen Lab2_1.zip och packa upp på lämpligt ställe på ditt konto. Där i ligger färdiga projektfiler och källkod för uppgift l. Öppna projektet Lab2_1 (IAR IDE Workspace (.eww)) Teori: Subrutiner Givet från början är en subrutin kallad Delay_ms. En subrutin är väldigt lik en funktion i C eller en metod i JAVA. Fördelen med en subrutin är ju att man kan anropa den från flera ställen. En subrutin kan även ta inparametrar. Det lättaste sättet att utbyta information mellan anropande kod och subrutinen är att använda ett register. Anrop och return En subrutin anropas genom instruktionen BL som står för Branch with Link. Då en subrutin anropas måste programräknaren sparas undan så man kan hitta tillbaks till anropet då subrutinen är utförd. Det är just detta som "with Link" står för. Programräknaren sparas i länkregistret R14 (LR) då man utför en Branch with Link. BL Delay_ms För att återgå från subrutinen till anropande koden måste man lägga tillbaka den sparade programräknaren från länkregistret. Detta görs helt enkelt genom att kopiera LR till PC då man vill återgå. Detta brukar i högnivåspråk kallas att göra "return". MOV PC,LR Lokala variabler och stacken Om man drar sig till minnes hur en funktion eller en metod fungerar i C eller JAVA finns något som heter lokala variabler. Dessa är ju som ordet säger lokala i subrutinen. Fördelen är att anropande kodavsnitt kan använda samma register som subrutinen. För att få en liknande funktion i assembler väljer man att spara undan innehållet i de register som används i subrutinen för att kunna återställa dom senare. På ARM-processorn kan man på ett mycket smidigt sätt kopiera flera register samtidigt. Var sparas då registren? Jo på ett speciellt ställe i minnet som kallas stacken. Stacken är helt enkelt ett minnesutrymme som vilket som helst. För att hålla reda på var i minnesutrymmet (som kallas stack) man befinner sig har man ett speciellt register. Det kallas ofta stackpekaren och är på ARM ofta R13. Den initieras i början av koden till något lämpligt utrymme, se nedan:
2 Högskolan i Halmstad 2 (8) SECTION.intvec : CODE (2) THUMB DATA vector_table DCD 0x ;initiering av Stackpekare DCD iar_program_start Då man skriver till stacken kan man göra det enligt nedanstående exempel. STMFD SP!,{R0,R1} För att sen läsa tillbaka är det viktigt att det görs på ett motsvarande sätt så att stackpekaren blir återställd. LDMFD SP!,{R0,R1} Parameterpassning Det finns flera sätt att passa information mellan subrutin och anropande kod. Stacken är en väldigt generell metod som är lämplig för stora mängder data. I enkla, som detta fall, kan register användas. Viktigt är då att man inte sparar undan värdet på det. Skulle man det kommer ju ingen förändring av registret ske, och det är ju det man vill i detta fallet. Subrutinen Delay_ms Subrutinen Delay_ms i detta fallet använder register R7 för att passa information till subrutinen. R7 innehåller hur lång tid (i ms) som subrutinen ska ta. Om man jämför med högnivåspåk är det enda subrutinen en dubbel for-loop. Den inre loopen tar precis l ms och den yttre räknar upp till det tal som är inparameter. Subrutinen nyttjar internt R0 och Rl så dessa sparas undan och återställs i slutet. Man passar även på att spara länkregister på stacken för att senare kunna återställa detta. Detta är för att kunna säkerställa eventuella nästlade anrop. Alla använda register återställs i slutet Subrutin Delay_ms ; Vänta i antal ms ; Inparameter: R7 - delay i ms ; DELAY_CALIB EQU MCLK / 36 ; utprovat värde Delay_ms STMFD MOV do_delay_ms LDR loop_ms SUBS BNE SUBS BNE SP!,{R0,R1} R0,R7 R1,=DELAY_CALIB R1,R1,#1 loop_ms R0,R0,#1 do_delay_ms LDMFD SP!,{R0,R1} MOV PC,LR ;
3 Högskolan i Halmstad 3 (8) Subrutinen Read_pO Subrutinen Read_p0 läser av en knapp (USR_RIGHT) på port noll. Värdet på knappen maskas ut och returneras ut med register R0. Subrutin Read_p ; Avläsning av knapp i subrutin ; Utparametrar: R0 ; Read_p0 STMFD SP!,{R1} LDR LDR AND R1,=PIOA_PDSR R0,[R1] R0,R0,#0x ; bitmaska fram aktuell knapp LDMFD SP!,{R1} MOV PC,LR ; Uppgift Som test för subrutinerna finns ett mycket enkelt huvudprogram. OBS! Innan du kan köra programmet måste portarna initieras, se labb 1. ; Huvudprogram read BL Read_p0 CMP R0, #0 ; Ej tryckt => 1:a BNE read LDR R7,=1000 BL Delay_ms Loop B loop ; Sätt en brytpunkt på den eviga loopen i slutet av huvudprogrammet. Kör koden i fullfart och testa om det tar ca1 s från man trycker på knappen tills programmet stannar. 2. Starta om koden från början och stega runt i read-loopen med Step Over. Prova stegfunktionerna Step Into istället. Vad är skillnaden mellan Step Over och Step Into? Starta om programmet. Stega dig fram till anropet av Subrutinen Delay_ms genom att hålla in knappen och stega. I början på koden kan man se vad stackpekaren SP är initierad till för värde. Vilket värde har stackpekaren (R13)?
4 Högskolan i Halmstad 4 (8) Titta på stacken genom att titta på minnet på den positionen. Sätt R0 och Rl till några värden du känner igen (tex. Rl=llllllll och R2= ). Detta är bara för man enkelt ska kunna se värdet då det sparas i minnet. Stega vidare till raden STMFD SP!,{R0,R1} Vilket värde har länk registret (R14)?.. Stega förbi denna rad och notera hur dessa värden sparas på stacken. Titta på värdena i registren. På vilka adresser sparas: R0 =.. R1 =.. Vilket håll växer stacken?.. Titta på hur dom får nya värden inuti subrutinen, men att dom återställs då denna raden körs. LDMFD SP!,{R0,R1} På detta sätt säger man att subrutinen har "lokala variabler". Värdena existerar bara inuti subrutinen När subrutinen är klar laddas stackpekaren med återhoppsadressen i länkregistert (R14). MOV PC, LR Vilket värde laddas programräknaren med?... Till vilken adress hoppar programmet?...
5 Högskolan i Halmstad 5 (8) Uppgift 2: Tändning/släckning av en lysdiod med maskning Syfte Att lära sig förstå hur man skriver till en port och endast påverkar vissa bitar. Förståelse för tekniken att maska in 1:or och 0:or. Att själv få skriva och konstruera en subrutin med en inparameter som senare skall användas i ett större program. Teori: Skrivning till port/register med hjälp av maskning Då man ska förändra en enstaka (eller flera) bitar i ett register använder man också tekniken med maskning, men på lite annat sätt. Ettställa bitar i register: Antag att man vill ettställa bit 0 och 2 i register 5. För att göra detta utför man operationen OR mellan registervärde och en s.k. bitmask med 1:a på de positioner man vill ettställa. Alla andra bitar sätts till noll. En bitmask för att ettställa bit 0 och 2 i register 5 blir då följande binära tal: = 0x05. LDR R0,=0xF0 ; Binära talet ORR R0, R0, #0x05 ; R0 OR:as med ; R0 är nu = 0xF5 Nollställa bitar i register: Antag att man vill nollställa bit 5 i register 5. För att göra detta utför man operationen AND mellan registervärde och en s.k. bitmask med 0:a på de positioner man vill nollställa. Alla andra bitar sätts till ett. En bitmask för att nollställa bit 5 i register 5 blir då följande binära tal: = 0xDF. LDR R0,=0xF0 ; Binära talet AND R0, R0, #0xDF ; R0 AND:as med ; R0 är nu = 0xD0 Vill man både nollställ och ettställa for man utföra en ettställning följt av en nollställning. Inventera bitar med hjälp av XOR (Exklusivt Eller) Ibland behöver man inventera bitar, d.v.s. man vill att alla nollor skall bli ettor och tvärt om. Exklusivt eller har följande sanningstabell: X Y XOR Genom att göra exklusivt eller med ettor erhålls önskat resultat. Nedan följer ett exempel på hur man togglar (byter tecken på) portb:s utgångar: LDR R1,=PIOB_ODSR ; PIO PortB Output Status Register LDR R0,[R1] AND R0, R0, #0x ; Maska av bit 0-2 LDR R1,=PIOB_CODR ; PIO PortB Clear Output Data Register STR R0,[R1] ; R0 skrivs tillbaks, nollställer ettor EOR R0, R0, #0x7 ; Inventera bit 0-2 LDR R1,=PIOB_SODR ; PIO PortB Set Output Data Register STR R0,[R1] ; R0 skrivs tillbaks, ettställer nollor
6 Högskolan i Halmstad 6 (8) Sammanfattning: Ettställa Nollställa Toggla OR:ar med 1:or på aktuell position. Nollor på resten. AND:ar med 0:or på aktuell position. Ettor på resten. XOR med 1:or på aktuell position. Nollor på resten. Uppgift: Tändning av godtycklig lysdiod i subrutin I denna uppgift ska du lägga till en ny subrutin. Subrutinens namn skall vara Led och den ska tända resp. släcka lysdioder. Du behöver inte göra ett nytt projekt utan bygg vidare på koden i uppgift l. R7 skall användas som inparameter till funktionen. Mönstret i R7:s lägsta 3 bitar ska motsvara de tre lysdioderna (två gröna och en röd). Tänk på att spara undan de register som används inuti funktionen. Vidare tänk på att den röda lysdioden har omvänd aktivering i förhållande till de gröna. Det är bra att hantera detta i subrutinen så att aktiveringen blir transparant utifrån sätt, d.v.s. när man anropar subrutinen. Utgå från följande skal: Led STMFD SP!,{Rl} ; Istället för Rl skriver du dom register du använder <egen kod> LDMFD SP!,{Rl} ; Istället för Rl skriver du dom register du använder MOV PC,LR Tänk på att maska 0:or resp. l:or på rätt sätt. Tips: Tänk på vad som händer om man inverterar bitmasken Glöm inte att initiera alla lysdioderna på portb! Testning Tänk på att testa subrutinen innan du går vidare. En bra variant är att loopa R7 med tal mellan 0-7 och anropa subrutinen inuti loopen. Gå inte vidare förrän programmet du förvissat dig om att subrutinen fungerar!
7 Högskolan i Halmstad 7 (8) Uppgift 3: Avläsning av knappar i en subrutin Syfte Få konstruera en subrutin med utparametrar som senare skall användas. Uppgift Bygg vidare på tidigare uppgift. I denna uppgift skall du skriva en funktion som läser av knapparna. R7 och R8 ska vara utparametrar och innehålla information om knapparnas status. Är R7=1 är knapp USR_RIGHT intryckt. Är R8=1 är knapp USR_LEFT intryckt. Testning En variant är låta alla dioder tändas om man trycker på knapp USR_RIGHT och alla släcks om man trycker knapp USR_LEFT. Utnyttja subrutinen Led för att tända resp. släcka lysdioderna. Gå inte vidare förrän programmet du förvissat dig om att subrutinen fungerar!
8 Högskolan i Halmstad 8 (8) Uppgift 4: Slutgiltig kod- Rinnande ljus åt godtyckligt håll Syfte När du kommit till denna uppgift ska du ha 3 subrutiner till ditt förfogande: Led Read_p0 ; Tänder lysdioder enligt bitmönster i R7 ; Läser av knapparna. R7=1 om knapp USR_RIGHT, R8 = l om knapp USR_LEFT Delay_ms ; Väntar R7 antal millisekunder I denna uppgift ska du använda dina subrutiner för att konstruera ett större program. Ingen modifikation av tidigare skrivna subrutiner skall behöva göras. Uppgift Bygg vidare på tidigare uppgift. Håller man inne den vänstra knappen, USR_LEFT, ska lysdioderna till synes rinna åt vänster, håller man inne den högra, USR_RIGHT,ska de rinna åt höger. Så fort man släpper knapparna skall lysdioderna släckas. Lysdioderna börjar räkna från den översta av de gröna dioderna om man har den röda till vänster. Hålls båda knapparna inne ska alla lysdioder vara tända. Sätt tid mellan varje lysdiodväxling till ca 0.5 s Tips: Någonstans i huvudprogrammet kommer säkert nedanstående beslutsträd behöva implementeras. Märk som hjälp ut de labels ni tänker använda i figuren samt vilka villkor som gäller för de olika valen. Tänk på att det i princip blir labels till alla ställen där ni behöver hoppa i koden. Tänk på vad som skall hända i de olika fallen. Bra ide är att rita flödesschema för hela huvudprogrammet innan ni börjar koda!! OBS! detta är inte komplett flödesschema för huvudprogrammet.
Övning2 Datorteknik, HH vt12 - Programmering
Övning2 Datorteknik, HH vt12 - Programmering För denna övning behöver man adresskarta och beskrivning av laborationsplattform. Finns bland föreläsningsanteckning samt i bilaga l till Lab l. Använd även
TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:
TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga
Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.
Datorteknik Tomas Nordström Föreläsning 6 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 6 Vad händer vid uppstart SoC och Kringkretsar, PIO Programmering i Assembler Lab2 genomgång
Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers
Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers Avbrott generellt F7.1. Avbrott sköts med hårdvara i processorn, man läser av hårdvarumässigt. Polling är en enklare princip för I/O- hantering.
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",
Ö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
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
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
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
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
Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?
Mål Datorteknik Föreläsning 3 Att veta hur maskinkoden för ett program byggs upp Att börja programmera i på riktigt Att kunna skriva och anropa subrutiner i Att förstå hur stacken fungerar Att veta vad
Lösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad
Laboration 1 i Datorteknik. Utvecklingssystemet IAR Embedded Workbench Grundläggande assemblerprogrammering för ARM
Laboration 1 i Utvecklingssystemet IAR Embedded Workbench Grundläggande assemblerprogrammering för ARM Målet med laborationen är att få begrepp om Assemblerprogrammering med IAR Embedded Workbench Grundläggande
Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler
Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-
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
Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 3 Assembler, stack och subrutiner, programmeringskonventionen Mål Att veta hur maskinkoden för ett program byggs upp Att börja programmera i assembler på riktigt Att kunna skriva
Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704
Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Svar Svar till uppgifterna lämnas på separat papper. En poäng per uppgift. Max 30 poäng. Bonuspoäng beräknas enligt följande tabell: 6-10 poäng
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
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ösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,
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
TSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2018-01-16 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Mail kommer skickas ut när labanmälan är möjlig
F5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2015-06-01 Lokal Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen
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..................................
F5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
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
Stack och subrutiner Programmeringskonventionen
Stack och subrutiner Programmeringskonventionen Du ska förstå hur en instruktion behandlas i processorn Du ska känna till några fler instruktioner Du ska veta hur maskinkoden för ett program byggs upp
Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647
Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel
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
TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor. Maxpoäng: 60p
TENTAMEN D1/E1/Mek1/Ö1 0900-1300 Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Bör j e Delistrand tel. 16 7122 alt.
Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)
MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga
F4: Assemblerprogrammering
F4: Assemblerprogrammering Hoppinstruktioner Branch Jump Med vilkor IF satser Loopar while-loopar do-while- loopar for-loopar Stackhantering Underprogram 1 BRA rel_adr Branch Always Relativadressering
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
Assemblerprogrammering för ARM del 2
Assemblerprogrammering för ARM del 2 Ur innehållet Programflöde Subrutiner, parametrar och returvärden Tillfälliga (lokala) variabler Läsanvisningar: Arbetsbok kap 2 Quick-guide, instruktionslistan Assemblerprogrammering
TSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2017-01-17 2 Dagens föreläsning Kort repetition Större programmeringsexempel Subrutiner
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2017-08-15 Lokal TER4 Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen
TSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2019-01-22 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Labanmälan öppnar måndag 28/1 kl 12.30 Anmälningssystemet
Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre
Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel
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
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2016-05-31 Lokal Kåra, T1, T2, U1, U15 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal
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
Styrteknik: MELSEC FX och numeriska värden
PLC2C:1 MELSEC FX I kursen styrteknik används styrsystemet FX1S som är ett litet system i MELSEC FX-serien. Vår version av FX1S har endast digitala in- och utgångar men oftast finns det både digitala och
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
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
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
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
A-del motsvarande KS1
MÄLARDALENS HÖGSKOLA Institutionen för elektroteknik Tentamen Mikrodatorteknik CT3760 Datum 2005-10-28 Tid 08.30 12.30 Svar till A- och B-del A-del motsvarande KS1 Uppgift A1. Vad blir resultatet då instruktionen
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 2 Programmering i C och assembler MIPS instruktionsarkitektur Mål Att ge en inblick i programspråket C Att veta varför assemblerprogrammering är viktigt Att börja arbeta med MIPS-assembler
Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 2 Programmering i C och assembler MIPS instruktionsarkitektur Mål Att ge en inblick i programspråket C Att veta varför assemblerprogrammering är viktigt Att börja arbeta med MIPS-assembler
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
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
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
Ö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
Assemblerprogrammering, ARM-Cortex M4 del 3
Assemblerprogrammering, ARM-Cortex M4 del 3 Ur innehållet: Fler pekartyper Användning av stacken Lagringsklasser, synlighet - lokala variabler Funktioner - returvärden och parametrar Läsanvisningar: Arbetsbok
Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien
DIGITAL- OCH MIKRODATORTEKNIK, U2 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar skall inlämnas.
Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet
Mål Datorteknik Föreläsning 2 Att ge en inblick i programspråket C Att veta varför assemblerprogrammering är viktigt Att börja arbeta med MIPS-assembler Att känna till något om programmeringstekniker Att
Lösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 7 mars 2012, klockan 14:00 19:00 i Vic 2, 3. Tillåtna hjälpmedel: på tentan utdelad formelsamling,
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2016-08-16 Lokal TER2, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive
Laboration Datorteknik TSIU02 2. I/O-programmering
Laboration Datorteknik TSIU02 2. I/O-programmering Stefan Gustafsson version 1.1 1. Inledning Laboration: I/O-programmering Du skall i denna laboration programmera TUTOR till att signalera i Morsekod.
Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien
DIGITAL- OCH MIKRODATORTEKNIK, U2 11-01-12 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2015-08-18 Lokal TERE, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive
F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen
68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2016-10-18 Lokal TER1 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive
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
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Laboration: Grunderna i MATLAB
Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar
Datorsystemteknik DVGA03 Föreläsning 5
Datorsystemteknik DVGA03 Föreläsning 5 Stack och subrutiner Programmeringskonventionen Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Registren i MIPS
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ösningsförslag till Tenta i Mikrodator
Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används
LABORATION. Datorteknik Y
LABORATION Datorteknik Y Kodlås på Darma Version 2.02 January 2018 (AN, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är att ge övning i assemblerprogrammering samt att skapa
CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.
IS1200 Exempelsamling till övning CE_O6, 2015 CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io. 6.1. Läs in data från IN-port (skjutomkopplare TOGGLES18) Skriv en subrutin, Get_Data
AVR 5. Styrning av trafikljus. Digitala system 15 p
Namn: Laborationen godkänd: Digitala system 15 p AVR 5 LTH Ingenjörshögskolan vid Campus Helsingborg Styrning av trafikljus. Syftet med laborationen är att styra en trafikkorsning med hjälp av en mikroprocessor.
Pipelining i Intel Pentium II
Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.
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
Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)
Mål Datorteknik Föreläsning 4 Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta vilken information
Digital- och datorteknik
Digital- och datorteknik Föreläsning #16 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Behovet av ändring av programflödet För att kunna skriva
Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
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
Digitala Projekt(EITF40) - Larm
Digitala Projekt(EITF40) - Larm Handledare: Bertil Lindvall Erik Oredsson, I-09 Sara Sellin, I-09 2012-05-08 1. SAMMANFATTNING I denna rapport presenteras vårt projekt att bygga ett huslarm från grunden
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
Grundläggande datavetenskap, 4p
Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register
Tentamen. Datorteknik Y, TSEA28
Tentamen Datorteknik Y, TSEA28 Datum 2017-10-26 Lokal TER1, TER3 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive
Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.
CT3760 Mikrodatorteknik Föreläsning 2 Tisdag 2005-08-30 Minnestyper. Atmega 16 innehåller följande minnestyper: SRAM för dataminne FLASH för programminne EEPROM för parametrar och konstanter. Minnen delas
Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.
ATMega16 Laborationer av Kjell 2 Rev:5 Datum: 29.09.2010 Page 1 of 7 Laboration 4: Knappstuds Drivrutiner för att eliminera störningar. Inledning: Laborationskortet EasyAVR6 har bland annat tryckknappar
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta
Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.
Tomas Nordström Högskolan i Halmstad Dokumentversion 0.1, 2012-04- 01 Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK. Informationen till detta kompendium är
Övning 6. Parallellport, timer
Övning 6 Parallellport, timer 6.1 de2_pio_toggles18 Memory-Mapped addresses LEDG8 LEDR17 LEDR16 LEDR15 LEDR14 LEDR13 LEDR12 LEDR11 LEDR10 LEDR9 LEDR8 LEDR7 LEDR6 LEDR5 LEDR4 LEDR3 LEDR2 LEDR1 LEDR0 LEDG7
Digital- och datorteknik
Digital- och datorteknik Föreläsning #16 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Behovet av ändring av programflödet För att kunna skriva
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
Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00.
Mikrodatorteknik Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3 7,5 högskolepoäng Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00 Hjälpmedel: Totalt antal poäng på tentamen:
Assemblerprogrammering för ARM del 1
Assemblerprogrammering för ARM del 1 Ur innehållet: Ordlängder och heltalstyper i C Variabeldeklarationer Programkonstruktioner Tilldelningar Uttrycksevaluering Ovillkorliga programflöden Funktion med
Tentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60
Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar
1 Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram:
'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ
'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ / VQLQJDURFKNRPPHQWDUHU Program: Elektroteknik, mikrodatorsystem Datum: 99-11-02 Tid: 8:00-9:30 Lokal E448 Hjälpmedel: Bilagor: Examinator: Miniräknare, linjal Datablad för
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