Assemblerprogrammering del 3



Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

F8: Undantagshantering

Digital- och datorteknik

Digital- och datorteknik

Assemblerprogrammering del 1

Digital- och datorteknik

Digital- och datorteknik

Assemblerprogrammering del 2

EDA Digital och Datorteknik

Programexempel för FLEX

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

Maskinorienterad programmering

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

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

F5: Högnivåprogrammering

Digital- och datorteknik

F5: Högnivåprogrammering

Assemblerprogrammering, ARM-Cortex M4 del 3

Maskinorienterad programmering

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Lösningsförslag tenta

Digital- och datorteknik

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

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

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Digital- och datorteknik

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

Digital- och datorteknik

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

F4: Assemblerprogrammering

Programmering i maskinspråk (Maskinassemblering)

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

Institutionen för elektro- och informationsteknologi, LTH

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

Assemblerprogrammets. struktur; exempel

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

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

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

Programmering i maskinspråk (Maskinassemblering)

Datorsystemteknik Föreläsning 7DAVA14

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

Föreläsningsanteckningar 2. Mikroprogrammering I

TENTAMEN(Nu anpassad till FLIS- processorn)

Assemblerprogrammering för HCS12

TSEA28 Datorteknik Y (och U)

Assemblerprogrammets struktur; exempel

Styrenheten styrsignalsekvenser programflödeskontroll

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

Maskinorienterad Programmering 2010/11

Assemblerprogrammering - fördjupning

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

CPU. Carry/Borrow IX. Programräknare

2010/2011. Syftet med kursen är att vara en introduktion till konstruktion och programmering av små inbyggda system.

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

Assemblerprogrammering för ARM del 2

TSEA28 Datorteknik Y (och U)

Assemblerprogrammering för ARM del 1

3. Mikroprogrammering II

Polling (cyklisk avfrågning) Avbrott

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

Stack och subrutiner Programmeringskonventionen

Maskinorienterad programmering

Kontrollskrivning Mikrodatorteknik CDT S2-704

Övningsuppgifter i Mikrodatorteknik 4p/5p

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

Tentamen. Datorteknik Y, TSEA28

CE_O3. Nios II. Inför lab nios2time

Tentamen. Datorteknik Y, TSEA28

Tentamen med lösningsförslag

Maskinorienterad Programmering LP3-2017/2018

Digital- och datorteknik

Exempel 3 på Tentamen

Programmering av inbyggda system

9 Assemblerprogrammering. Innehåll GRUNDLÄGGANDE DATORTEKNIK FÖR HÖGSKOLANS INGENJÖRSUTBILDNINGAR KOMPENDIUM

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

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

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

Maskinorienterad Programmering IT2, LP2-2016/2017

A-del motsvarande KS1

Tentamen. Datorteknik Y, TSEA28

Digital- och datorteknik

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Tentamen. Datorteknik Y, TSEA28

Programmering av inbyggda system 2014/2015

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

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Exempel 2 på Tentamen med lösningar

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:

TENTAMEN (Något redigerad)

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

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

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Maskinorienterad programmering

Laboration nr 3 behandlar

Exempel 1 på Tentamen med lösningar

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)

TSEA28 Datorteknik Y (och U)

Institutionen för elektro- och informationsteknologi, LTH

Transkript:

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) Lokala variabler och deklarationers synlighet Undantagshantering Modularisering - subrutiner Vanligt förekommande operationer med uttryckssemantik kan implementeras som en generell funktion subrutin. Exempelvis finns inte operationen multiplikation hos FLISP, men vi kan skriva en subrutin som gör jobbet. Instruktionerna JSR, BSR och RTS är speciellt avsedda för detta. 1 2 Flödessymbol för subrutiner Sammanfattning av symboler för flödesdiagram LDA op1 LDY op2 JSR mul STA prod EXEMPEL: Anrop av subrutin med både parametrar och returvärde JSR procedur EXEMPEL: Anrop av parameterlös subrutin utan returvärde 3 4

Användning av flödesdiagram Vi kan nu beskriva godtyckliga algoritmer med flödesdiagram dvs. Grundläggande operationer kan beskrivas Programflöden med operationer kan beskrivas Programflöden kan organiseras i subrutiner. Statisk minnesallokering Vi har tidigare beskrivit globala variabler potentiellt åtkomligt från alla delar av programmet. Sårbart för sidoeffekter Ockuperar onödigt mycket minne Rekursion kan inte användas Återstår: Datainkapsling : synlighet och åtkomst. 5 6 Flyktig minnesallokering lokala variabler Lokala variablers adresser n,sp Som alternativ använder vi lokala variabler, med andra egenskaper: Åtkomlig bara i den programdel den deklarerats Inga sidoeffekter Ockuperar enbart minne då dess programdel exekveras Rekursion kan användas 7 8

Referens av lokala variabler Undantagstillstånd Antag SP har värdet 1F 16 innan minne reserveras (LEAS -4,SP) SP-4SP SP+4SP Återstart ("reset"), händelser som alltid föranleder återstart av processorn. Avbrott ("interrupt"), externa händelser, som dock inte innebär att processorn ska återstartas. Internt fel ("traps"), händelser som uppträder vid utförandet av en instruktion och som gör att instruktionen inte kan fullföljas. 9 10 Undantagsvektorer Interna fel Interna fel uppstår då instruktionsexekvering inte kan fullföljas. Några exempel på interna fel, i det generella fallet är: Division med 0, kan inträffa i processorer som har maskininstruktioner för division och eftersom operationen inte är definierad kan den normalt inte heller fullföljas. Om processorn avkodar en otillåten operationskod kan inte denna utföras som en instruktion. I bland kallas detta också för trap, eller software interrupt. Adressfel, processorer har oftast mycket stora adressrum som inte fullständigt bestyckats med minne och periferikretsar. Om processorn gör ett försök att hämta en instruktion eller data från en sådan adress kan detta upptäckas och utlösa adressfel. Vid reset laddas adressen start i PC. Vid "interrupt laddas adressen irqhandler i PC. Vid "traps laddas adressen traphandler i PC. Bussfel, kan inträffa hos processorer som kräver att vissa datatyper lagras på visst sätt i minnet. Exempelvis kan man kräva att när en 32-bitars datatyp lagras i ett byte-organiserat minne får detta bara ske på adresser som är jämnt delbara med 4 (alignment condition). 11 12

Stackens utseende vid inträde i traphandler Exempel på TRAP emulering av instruktion Följande exempel visar hur en otillåten operationskod kan användas för att emulera en instruktion som inte finns i instruktionsuppsättningen. LDA #$55 LDX #$88 FCB 3 ; illegal opkod stop BRA stop traphandler: STA 2,SP STX 1,SP PC = M(FE 16 ) ORG $FE FCB traphandler ; hanteringsrutin för interna fel 13 14 Extern styrning Återstart och avbrott Stackens utseende vid inträde i irqhandler PC = M(FD 16 ) 15 16

Avbrottshantering exempel: räkna antal avbrott Mall ett assemblerprogram för FLISP ANDCC #$F ; nollställ I-flagga i CC main: LDA count STA $FB stop BRA main irqhandler: INC count count RMB 1 ANDCC #%11101111 ; nollställ I-flagga restart: JSR main BRA restart main:... ; applikationsprogram RTS irqhandler:... traphandler:... ORG $FD FCB irqhandler ORG $FF ; hanteringsrutin för avbrott ORG $FD FCB irqhandler FCB traphandler ; hanteringsrutin för avbrott ; hanteringsrutin för interna fel 17 18