Tentamen med lösningsförslag
|
|
- Amanda Lindqvist
- för 7 år sedan
- Visningar:
Transkript
1 Institutionen för data och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT015 Maskinorienterad programmering IT EDA480 Maskinorienterad programmering D EDA485 Maskinorienterad programmering Z DIT151 Maskinorienterad programmering GU Måndag 27 augusti 2012, kl Examinatorer Roger Johansson, tel Jan Skansholm, tel Kontaktpersoner under tentamen Roger Johansson/Jan Skansholm Tillåtna hjälpmedel Häftet Instruktionslista för CPU12 Inget annat än rättelser och understrykningar får vara införda i häftet. Du får också använda bladet C Reference Card samt en av böckerna: Vägen till C, Bilting, Skansholm The C Programming Language, Kerninghan, Ritchie Inget annat än rättelser och understrykningar får vara införda i boken. Tabellverk och miniräknare får ej användas! Lösningar anslås senast dagen efter tentamen via kursens hemsida. Granskning Tid och plats anges på kursens hemsida. Allmänt Siffror inom parentes anger full poäng på uppgiften. För full poäng krävs att: redovisningen av svar och lösningar är läslig och tydlig. Ett lösningsblad får endast innehålla redovisningsdelar som hör ihop med en uppgift. lösningen ej är onödigt komplicerad. du har motiverat dina val och ställningstaganden assemblerprogram är utformade enligt de råd och anvisningar som givits under kursen och tillräckligt dokumenterade. C program är utformade enligt de råd och anvisningar som getts under kursen. I programtexterna skall raderna dras in så att man tydligt ser programmens struktur. Betygsättning För godkänt slutbetyg på kursen fordras att både tentamen och laborationer är godkända. Tentamenspoäng ger slutbetyg (DAT/EDA): 20p betyg 3 < 30p betyg 4 < 40p betyg 5 respektive (DIT): 20p betyg G < 35p VG
2 Maskinorienterad programmering Tentamen 27 augusti (9) Uppgift 1 (6p) Avbrott Under laborationer med borrmaskinen har du utökat systemet, så att operatören via två switchar skall kunna: Switchar för avbryta pågående program och ge ett larm (via extern styrning subrutinen SIGNAL). Operatör nödstoppa systemet och förbereda det för en ny Tangentbord Mikrodator för borruppgift. (En omstart av systemet från adress borrkommand BORRSTART). Genom tillägget får systemet det blockmässiga utseendet enligt figuren till höger. De två nya funktionerna realiseras m h a avbrott som begärs på CPU12 processorns IRQ ingång. enligt följande koppling: Event 1 (Nödstopp) 1 1D C1 R Q 1 Till port IRQSRC bit 0 Event 2 (Signal) 1 1D C1 R Q 2 1 Till port IRQSRC bit 1 Anpassningselektronik Till processorns IRQ -ingång Borrmaskin CS vid skrivning på port IRES1 CS vid skrivning på port IRES2 Switcharna ansluts till avbrottsingången via var sin D vippa och en NOR grind. En nedtryckning (= positiv puls) av någon av switcharna medför att IRQ signalen (Interrupt ReQuest) aktiveras. D vipporna är anslutna till bitpositionerna 7 och 6 av inporten IRQSRC, som alltså innehåller avbrottsvippornas status. a) Skriv initieringsrutinen IRQINIT i CPU12 assemblerspråk. b) Skriv avbrottsrutinen IRQR i CPU12 assemblerspråk. IRQINIT och IRQR har beskrivningarna: IRQINIT Beskrivning: Rutinen initierar kopplingen och CPU12 för IRQ-avbrott. Den använder laborationsdatorns inportar IRES1 och IRES2 för eventuella "dummy-läsningar". Anrop: BSR IRQINIT Indata: Inga Utdata: Inga Registerpåverkan: Ingen Anropade subrutiner: Inga IRQR Beskrivning: Anrop: Indata: Utdata: Registerpåverkan: Anropade subrutiner: Avbrottsrutinen reagerar på begäran om nödstopp och larm beroende på på vilken switch som aktiverats. Förloppen är mycket snabba varför man kan förutsätta att endast en av switcharna begär avbrott åt gången. Skulle både nödstopp och larm begäras samtidigt så skall nödstopp ha högre prioritet än larm. Därför skall också ett larm avbrytas av en begäran om nödstopp. Avbrottsbegäran på IRQ Status på port IRQSRC Inga Ingen SIGNAL
3 Maskinorienterad programmering Tentamen 27 augusti (9) Uppgift 2 (10p) Kodningskonventioner I denna uppgift ska du förutsätta samma konventioner som i XCC12, (bilaga 2). Följande C deklarationer har gjorts på toppnivå (global synlighet): char *e,f; a) Visa hur variabeldeklarationerna översätts till assemblerdirektiv för HCS12. b) Visa också hur följande funktionsanrop översätts till assemblerkod för HCS12: func( e, f ); c) Inledningen (parameterlistan och lokala variabler) för en funktion ser ut på följande sätt: void function( char * b, float a ) float c; int d; char e; e = 0; d = 1; b = (char *) 0x1000; a = 1.0;... Visa hur utrymme för lokala variabler skapas och hur tilldelningarna kan utföras. Ledning: Flyttalet 1.0 kodas $3F Uppgift 3 (8p) Assemblerprogrammering Följande funktion finns given i C. Implementera en motsvarande subrutin i assemblerspråk för HC12. Du ska inte förutsätta några speciella kompilatorkonventioner i denna uppgift. Parametern cp skickas i register X med anropet, returvärdet från subrutinen ska finnas i register D efter att subrutinen utförts. char * arrayconvert(char *cp ) while( *cp ) *cp = *cp & 0x7F; cp++; return cp; Uppgift 4 (3p) a) I realtidskärnan som beskrevs på en av föreläsningarna ingick två avbrottsrutiner. Vilka typer av avbrott tog dessa hand om? b) I realtidskärnan beskrevs varje process (aktivitet) med hjälp av en struct, av slaget process_struct. Vilken information fanns i en sådan struct?
4 Maskinorienterad programmering Tentamen 27 augusti (9) Uppgift 5 (7p) Programmering med pekare Standardfunktionen strcmpi kan beskrivas på följande sätt: int strcmpi (const char *String1, const char *String2 ); The strcmpi subroutine compares strings in memory. The String1 and String2 parameters point to strings. A string is an array of characters terminated by a null character. The strcmpi subroutine performs a comparison of the string pointed to by the String1 parameter and the string pointed to by the String2 parameter ignoring case, and analyzes the extended ASCII character set values of the characters in each string. The strcmpi subroutine compares unsigned char data types. The strcmpi subroutine then returns a value that is: Less than 0 if the value of string String1 is lexicographically less than string String2. Equal to 0 if the value of string String1 is lexicographically equal to string String2. Greater than 0 if the value of string String1 is lexicographically greater than string String2. Exempel på användning: #include <stdio.h> #include <string.h> char string1[] = "The quick brown dog jumps over the lazy fox"; char string2[] = "The QUICK brown dog jumps over the lazy fox"; int main() char tmp[20]; int result; result = strcmpi( string1, string2 ); if( result > 0 ) printf( string1 is greater than string2\n ); else if( result < 0 ) printf( string1 is less than string2\n ); else printf( string1 is equal to string2\n ); Utskriften blir: string1 is equal to string2 Din uppgift är att, i C, skriva en egen definition av funktionen strcmpi. Du får inte använda dig av indexering, utan måste utnyttja pekare. Du får endast använda följande standardfunktion: Syntax #include <ctype.h> int tolower(int c) Function tolower converts an uppercase letter to its lowercase equivalent, leaving all other characters unmodified. Uppgift 6 (6p) Maskinnära programmering i C Två strömbrytare och två displayenheter, enligt figuren till höger, är anslutna till adresser 0x600 och 0x601, respektive adress 0x400 och 0x401 i ett MC12 mikrodatorsystem. Konstruera en funktion void AddSigned8bitTo16( void ) som adderar de två värdena som läses från strömbrytarna (tolka som tal med tecken) och därefter presenterar resultatet som ett 16 bitars tal på displayindikatorerna.
5 Maskinorienterad programmering Tentamen 27 augusti (9) Uppgift 7 (10p) Programmering i C Man har längs vissa vägsträckor utrustat hastighetsskyltarna med radiosändare som sänder ut information om den högsta tillåtna hastigheten. De fordon som passerar kan vara utrustade med radiomottagare som tar emot denna information. Den mottagna informationen lagras i ett register i mottagarna. Detta register kopplas till fordonets dator så att det kan avläsas från denna. Registret är 16 bitar långt och har kopplats till den oktala adressen i datorn. Om en radiomottagare inte mottagit någon information den senaste minuten nollställs automatiskt detta register. I ett fordon finns också en intelligent digital hastighetsmätare som har en display som på vanligt sätt visar den aktuella hastigheten. Till hastighetsmätaren hör dessutom två register vilka kan anslutas till datorn, ett stryrregister på den oktala adressen och ett dataregister på den oktala adressen Båda dessa register består av 16 bitar. För att slå på intelligensen i hastighetsmätaren skall man sätta bit nr 0 i styrregistret till 1 och för att slå på avbrottsmekanismen skall bit nr 6 sättas till 1. Bitarna i styrregistret innehåller felinformation (felkoder). Om inget fel inträffat är dessa bitar alla 0. I hastighetsmätarens dataregister kan man lägga in den högsta tillåtna hastigheten. Om fordonets aktuella hastighet överstiger hastigheten i dataregistret genererar hastighetsmätaren automatiskt en avbrottssignal till datorn. En förutsättning för detta är dock att intelligensen och avbrottsmekanismen slagits på. Avbrottsvektorn ligger på adressen 60 oktalt. Avbrottet upprepas var tredje sekund tills hastigheten inte längre överstiger hastigheten i dataregistret. Hastighetsmätaren kan även generera avbrott om något fel uppstått. Till datorn finns slutligen kopplat en krets som genererar en ljudsignal. Till denna krets hör ett 16 bitars styrregister på den oktala adressen Om man lägger en etta i bit nr 0 i detta register kommer en signal att ljuda under ett kort ögonblick (kortare än tre sekunder). Därefter tystnar signalen och bit nummer 0 återställs automatiskt till 0 Uppgiften är att i C skriva det program som behövs i fordonets dator för att samordna de kretsar som beskrivits ovan. Programmet skall var 10:e sekund avläsa den högsta tillåtna hastigheten från radiomottagaren. Om radiomottagaren mottagit information skall den högsta tillåtna hastigheten läggas i hastighetsmätarens dataregister och hastighetsmätaren skall initieras så att den kan generera avbrott. Om ingen information mottagits skall hastighetsmätaren inte kunna generera avbrott. Om ett avbrott genererats av hastighetsmätaren och det inte är något fel skall ljudsignalen slås på. Om något fel uppstått man kan ignorera detta och helt enkelt nollställa de bitar som innehåller felkoden. Du måste också initiera avbrottsvektorn och skriva den assemblerrutin man kommer till då avbrott inträffar. I denna uppgift får du förutsätta att funktionen hold som du konstruerade på laborationerna är färdigskriven och kan användas. Den ger som du minns en fördröjning med så många millisekunder som dess parameter anger. Du får också förutsätta att typen short int implementeras med 16 bitar.
6 Maskinorienterad programmering Tentamen 27 augusti (9) Bilaga 1 Assemblerdirektiv för MC68HC12. Assemblerspråket använder sig av mnemoniska beteckningar som tillverkaren Freescale specificerat för maskininstruktioner och instruktioner till assemblatorn, s.k. pseudoinstruktioner eller assemblerdirektiv. Pseudoinstruktionerna framgår av följande tabell: Direktiv Förklaring ORG N Placerar den efterföljande koden med början på adress N (ORG för ORiGin = ursprung) L RMB N Avsätter N bytes i följd i minnet (utan att ge dem värden), så att programmet kan använda dem. Följden placeras med början på adress L. (RMB för Reserve Memory Bytes) L EQU N Ger label L konstantvärdet N (EQU för EQUates = beräknas till) L FCB N1, N2 Avsätter i följd i minnet en byte för varje argument. Respektive byte ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. (FCB för Form Constant Byte) L FDB N1, N2 Avsätter i följd i minnet ett bytepar (två bytes) för varje argument. Respektive bytepar ges konstantvärdet N1, N2 etc. Följden placeras med början på adress L. (FDB för Form Double Byte) L FCS "ABC" Avsätter en följd av bytes i minnet, en för varje tecken i teckensträngen "ABC". Respektive byte ges ASCII värdet för A, B, C etc. Följden placeras med början på adress L. (FCS för Form Caracter String) Bilaga 2: Kompilatorkonvention XCC12: Parametrar överförs till en funktion via stacken och den anropande funktionen återställer stacken efter funktionsanropet. Då parametrarna placeras på stacken bearbetas parameterlistan från höger till vänster. Prolog kallas den kod som reserverar utrymme för lokala variabler. Epilog kallas den kod som återställer (återlämnar) utrymme för lokala variabler. Den del av stacken som används för parametrar och lokala variabler kallas aktiveringspost. Beroende på datatyp används för returparameter HC12 s register enligt följande tabell: Storlek Benämning C typ Register 8 bitar byte char B 16 bitar word short int och pekartyp D 32 bitar long float long int float Y/D
7 Maskinorienterad programmering Tentamen 27 augusti (9) Lösningsförslag uppgift 1 a) ; ****************************************************************** ; SUBRUTIN-IRQINIT ; Beskrivning: Rutinen nollställer D-vipporna, adress ; till avbrottsrutinen läggs på adress FFF2, ; I-flaggan nollställs. ; Anrop: BSR IRQINIT ; Indata: Inga ; Utdata: Inga ; Reg-påverkan: Ingen ; Anrop subr: Ingen ; ****************************************************************** IRQINIT: PSHA PSHX LDX #IRQR ; adressen till avbrottsrutinen läggs STX $FFF2 ; på adress FFF2 LDAA IRES1 ; nollställer D-vippa 1 LDAA IRES2 ; nollställer D-vippa 2 CLI ; I-flaggan nollställs PULX PULA RTS b) ; ****************************************************************** ; AVBROTTSRUTIN-IRQR ; Beskrivning: Om swith 1 har aktiverats, dvs BITPOS 7=1 så görs ; nödstopp. Om swith 2 har aktiverats, dvs ; BITPOS 6=1 så körs larmrutinen. ; Anrop: via IRQ ; Indata: Inga ; Utdata: Inga ; Reg-påverkan: Ingen ; Anrop subr: SIGNAL ; ****************************************************************** IRQR: LDAA IRQSRG ; hämtar vippornas status ASLA ; shiftar in BITPOS 7 i c-flaggan BCC NO_STOP ; undersöker statusbit för nödstopp LDAB IRES1 ; nollställer vippa 1 BRA DRPGM ; återstarta DRPGM NO_STOP: ASLA ; skiftar in BITPOS 6 i c-flaggan BCC NO_SIGNAL ; undersöker statusbit för larm LDAB IRES2 ; nollställer vippa 2 BSR SIGNAL ; om c=1 hoppa till subrutinen SIGNAL NO_SIGNAL: RTI ******************************************************************* Lösningsförslag uppgift 2 a) _e RMB 2 _f RMB 1 b) LDAB _f PSHB LDD _e PSHD JSR _func LEAS 3,SP c) _function: LEAS -7,SP ; e = 0; CLR 0,SP ; d = 1; LDD #1 STD 1,SP ; b = (char *) 0x1000; LDD #$1000 STD 9,SP
8 ; a = 1.0; LDD #0x3F80 STD 11,SP LDD #0x0000 STD 13,SP... Lösningsförslag uppgift 3 ;char * arrayconvert(char *cp ) ; Parametrar. cp i register X vid anrop ; resultatet i register D vid utträde arrayconvert: ; ; while( *cp ) TST,X BEQ arrayconvert_1 ; *cp = *cp & 0x7F; LDAB,X ANDB #$7F STAB 1,X+ ;.. cp++; BRA arrayconvert arrayconvert_1: ; ; return cp; TFR X,D ; RTS Lösningsförslag uppgift 4 a) avbrott från realtidsklockan och software interrupts b) pekare till det utrymme som allokerats för processens stack, pekare till stackens topp, processens prioritet, processens tidigaste tillåtna starttid Lösningsförslag uppgift 5 int strcmpi(char *s1, char *s2) while (1) if ( tolower(*s1)!= tolower(*s2) ) return(*s1 - *s2); if (*s1 == 0) return(0); s1++; s2++; Lösningsförslag uppgift 6 typedef char *port8ptr; typedef short *port16ptr; #define ML4OUT_ADR 0x400 #define ML4IN_ADR1 0x600 #define ML4IN_ADR2 0x601 #define ML4OUT16 *((port16ptr) ML4OUT_ADR) #define ML4IN1 *((port8ptr) ML4IN_ADR1) #define ML4IN2 *((port8ptr) ML4IN_ADR2) void AddSigned8bitTo16( void ) short s; while( 1 ) s = ( short ) ML4IN1; s = s + ( short ) ML4IN2; ML4OUT16 = s; Maskinorienterad programmering Tentamen 27 augusti (9)
9 Lösningsförslag uppgift 7 // Filen hastighet.h // grundläggande definitioner typedef short int port; typedef port *portptr; typedef void (*vec) (void); typedef vec *vecptr; Maskinorienterad programmering Tentamen 27 augusti (9) // hastighetsmätaren #define HASTIGHET_REG_ADR #define HASTIGHET_DAT_ADR #define HASTIGHET_VEC_ADR 060 #define HASTIGHET_REG *((portptr) HASTIGHET_REG_ADR) #define HASTIGHET_DAT *((portptr) HASTIGHET_DAT_ADR) #define HASTIGHET_VEC *((vecptr) HASTIGHET_VEC_ADR) #define ENABLE_BIT 0x1 #define INTERRUPT_BIT 0x40 #define ERROR_BITS 0xF000 // mottagaren #define MOTTAGARE_DAT_ADR #define MOTTAGARE_DAT *((portptr) MOTTAGARE_DAT_ADR) // alarm #define ALARM_DAT_ADR #define ALARM_DAT *((portptr) ALARM_DAT_ADR) #define ALARM_ON_BIT 0x1 // Filen time.h void hold(long int); // Filen inter.h void hast_trap(); // Filen inter.s12 segment text define _hast_trap extern _hast_inter _hast_trap: jsr _hast_inter rti // Filen main.c #include "hastighet.h" #include "time.h" #include "inter.h" main() short int avlast; HASTIGHET_VEC = hast_trap; while(1) if ((avlast=mottagare_dat) > 0) HASTIGHET_DAT = avlast; HASTIGHET_REG = ENABLE_BIT INTERRUPT_BIT; else HASTIGHET_REG = 0; hold(10000); void hast_inter() if (HASTIGHET_REG & ERROR_BITS) HASTIGHET_REG = HASTIGHET_REG & ~ERROR_BITS; else ALARM_DAT = ALARM_ON_BIT;
Tentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag Programmering av inbyggda system Exempel 2 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering, DAI,EI,MEI Fredag 19 augusti 2016, kl. 8.30-12.30 Examinator
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering Måndag 16 mars 2015, 14.00-18.00 Examinator Roger Johansson,
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag Programmering av inbyggda system Exempel 1 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner
Läs merTentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl. 8.30-12.
EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT Tentamen Tisdag xx yyyy 2006, kl. 8.30-12.30 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Jan Skansholm, tel. 772
Läs merTentamen. 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 merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DIT152 Programmering
Läs merExempel 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 merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DIT152 Programmering
Läs merMaskinorienterad 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 merEDA480/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 merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT015 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU Fredag 9 april 2010,
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag Programmering av inbyggda system Exempel 3 Examinator Roger Johansson, tel. 772 57 29 Kontaktpersoner
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT016 Programmering av inbyggda system IT DIT152 Programmering av inbyggda system GU Tisdag 17 december
Läs merMaskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/ lp 3 Mekatronikingenjör åk 2/
Läs merMaskinorienterad 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 merMaskinorienterad 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 merProgrammering av inbyggda system. Kodningskonventioner. Viktor Kämpe
Kodningskonventioner Viktor Kämpe Varför kodningskonventioner? Förståelse för Skillnaden mellan lokala/globala variabler. Funktionsargument. Returvärde. Möjliggör Mix av assembler och C. Kodningskonventioner/VK
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merDigital- 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 merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU EDA481 Programmering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 (EDA481) Maskinorienterad programmering D EDA487 (EDA486) Maskinorienterad programmering Z
Läs merLEU240 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 merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag LEU500 Maskinorienterad programmering Måndag 13 mars 2017, kl. 14.00-18.00 Examinator Lars Bengtsson
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merProgrammering av inbyggda system 2014/2015
Programmering av inbyggda system 2014/2015 Sammanfattning Kursens syften är att vara en introduktion till konstruktion av små inbyggda system och att ge en förståelse för hur imperativa styrstrukturer
Läs merTentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar
EDA485 Maskinorienterad programmering Z Tentamen Måndag 6 mars 2006, kl. 14.00-18.00 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Jan Skansholm, tel. 772 1012 Kontaktpersoner under tentamen Som
Läs merProgrammering av inbyggda system 2012/2013. Kodningskonventioner och programbibliotek. maskinnära programmering i C och assemblerspråk
2012/2013 Kodningskonventioner och programbibliotek Ur innehållet: Kodningskonventioner maskinnära programmering i C och assemblerspråk Programbibliotek 32-bitars operationer med 16 bitars processor Kodningskonventioner
Läs merEDA215 Digital- och datorteknik för Z
EDA25 Digital- och datorteknik för Z Tentamen Måndag 7 december 2007, kl. 08.30-2.30 i M-salar Examinatorer Rolf Snedsböl, tel. 772 665 Kontaktpersoner under tentamen Som ovan. Tillåtna hjälpmedel Häftet
Läs merMaskinorienterad programmering
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN(med svar och vissa lösningsförslag) KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör
Läs merTentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar
EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU Tentamen Måndag 23 oktober 2006, kl. 08.30 12.30 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Kontaktpersoner under tentamen Som
Läs merDigital- 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(Lösningsförslag finns sist i denna fil.)
(Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA481 Programmering av inbyggda system D EDA486 Programmering av inbyggda system Z DAT016 Programmering
Läs merTentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar
DAT015 Maskinorienterad programmering IT Tentamen Fredag 21 april 2006, kl. 14.00-18.00 i V-salar Examinatorer Rolf Snedsböl, tel. 0734 30 93 79 Jan Skansholm, tel. 0707 16 32 30 Kontaktpersoner under
Läs merDigital- 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 merAtt använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Läs merEDA 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 merKodningskonventioner (XCC12) Specifikation av strncpy: Övningsexempel: Maskinorienterad Programmering 2011/2012
Maskinorienterad Programmering 2011/2012 Kodningskonventioner och programbibliotek Ur innehållet: Kodningskonventioner maskinnära programmering i C och assemblerspråk Programbibliotek 32-bitars operationer
Läs merFortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe
Fortsä'ning Pekare Ulf Assarsson Originalslides av Viktor Kämpe Pekare och Arrayer/VK 2 Pekare och Arrayer/VK 3 Förra föreläsningen Pekare Bll data Arrayer fix storlek och adress Dynamisk minnesallokering
Läs merKlasser och objekt i C#
Klasser och objekt i C# Från klassdiagram till C#-klass till objekt initierat av en konstruktor. Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag EDA482 Programmering av inbyggda system D EDA487 Programmering av inbyggda system Z DAT017 Maskinorienterad
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 Maskinorienterad programmering IT DIT151 Maskinorienterad programmering GU EDA481 Programmering
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs mer7) 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 merTentamen. 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 merFortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe
Fortsä'ning Pekare Ulf Assarsson Originalslides av Viktor Kämpe Pekare och Arrayer/VK 2 Pekare och Arrayer/VK 3 Förra föreläsningen Pekare Bll data Arrayer fix storlek och adress Dynamisk minnesallokering
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
Läs merTENTAMEN (med svar och vissa lösningar)
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN (med svar och vissa lösningar) KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/
Läs merAssemblerprogrammets struktur; exempel
Maskinorienterad Programmering 2010/11 Maskinnära programmering en introduktion Ur innehållet: Assemblatorn, assemblerspråk Datatyper Tilldelningar, l i unära och binära operationer Permanenta/tillfälliga
Läs merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merMaskinorienterad Programmering 2010/11
Maskinorienterad Programmering 2010/11 Maskinnära programmering en introduktion Ur innehållet: Assemblatorn, assemblerspråk Datatyper Tilldelningar, l i unära och binära operationer Permanenta/tillfälliga
Läs merLösningsförslag till Tenta i Mikrodator
Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används
Läs merDigital- 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 merFöreläsning 5: Rekursion
Föreläsning 5: Rekursion Vi har tidigare sett att man kan dela upp problem i mindre bitar med hjälp av underprogram, vilket är ett utmärkt sätt att lösa problem. Detta är ganska lätt att rita upp för sig
Läs merProgrammera en NXT Robot
KUNGLIGA TEKNISKA HÖGSKOLAN Programmera en NXT Robot Med hjälp utav NXC Peyman Torabi 2012-09-03 E-post: peymant@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Uppgiften var att analysera
Läs merStack 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
Läs merEffektpedal för elgitarr
EITF11 - Digitala Projekt Effektpedal för elgitarr Handledare: Bertil Lindvall Ivan Rimac (I05) Jimmy Lundberg (I08) 2011-05-10 Contents Bakgrund... 3 Kravspecifikation... 3 Kravspecifikation Effektpedal...
Läs merAssemblerprogrammering
2012-02-14 Assemblerprogrammering Övningsuppgifter 2011 Lösningar (Med reservation för diverse fel!) 1. Hur många E-klockperioder använder CPU12 (HCS12) för att köra programsekvensen nedan? ORG $1000 LDAA
Läs merLösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt
Läs merAssemblerprogrammering 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 merJava M1 V2 L2 K2 TM W. Tentamen i Programmering 2004-04-17, kl 08.00-13.00. LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap 1(5) M1 V2 L2 K2 TM W Java Tentamen i Programmering 2004-04-17, kl 08.00-13.00 Anvisningar Tillåtna hjälpmedel: Holm, Objektorienterad programmering
Läs merEnkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Läs merTentamen. 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
Läs merDigital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronik-, data- och elektroingenjör Åk / lp o2 LEU43 EXAMINATOR
Läs merProgramexempel: tärningsspel
Programexempel: tärningsspel Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt
Läs merTentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merTentamen. DIT150 Maskinorienterad programmering GU DAT015 Maskinorienterad programmering IT. Söndag 17 december 2006, kl
DIT150 Maskinorienterad programmering GU DAT015 Maskinorienterad programmering IT Tentamen Söndag 17 december 2006, kl. 14.00-18.00 i V-salar Examinatorer Rolf Snedsböl, tel. 772 1665 Jan Skansholm, tel.
Läs mer729G04 - Hemuppgift, Diskret matematik
79G04 - Hemuppgift, Diskret matematik 5 oktober 015 Dessa uppgifter är en del av examinationen i kursen 79G04 Programmering och diskret matematik. Uppgifterna ska utföras individuellt och självständigt.
Läs merTentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU Måndag 18 Oktober 2010, kl. 8.30-12.30 Examinatorer
Läs merF5: 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
Läs merRepetition C-programmering
Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition
Läs merAssemblerprogrammering för HCS12
Assemblerprogrammering för HCS12 Ur innehållet: Assemblatorn, assemblerspråk Ordlängder och datatyper Tilldelningar, binära operationer Registerspill, permanenta och tillfälliga variabler Programkonstruktioner
Läs merAssemblerprogrammering, 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
Läs merF5: 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
Läs merAssemblerprogrammets. struktur; exempel
Assemblerprogrammering för HCS12 Absolut assemblering Ur innehållet: Assemblatorn, assemblerspråk Ordlängder och datatyper Tilldelningar, binära operationer Registerspill, permanenta och tillfälliga variabler
Läs merProgramexempel 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 merDigital- 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 merEfter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:
EXYPLUS OFFICE manual Välkommen till ExyPlus Office! Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar: Hämta fordon Hämta alla fordonsenheter
Läs merIntroduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Läs merDagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Läs merExempelsamling Assemblerprogrammering
Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start
Läs merTentamen med lösningsförslag
Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D
Läs merProgrammering 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Ö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 merFö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 merTentamen i EIT070 Datorteknik
Tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 10 mars 2010, klockan 08:00 13:00 å Victoriastadion 1 och 2. Tillåtna hjälpmedel: på tentan utdelad formelsamling,
Läs merFRÅN A TILL Ö LäraMera Ab / www.laramera.se och Allemansdata Ab / www.allemansdata.se FRÅN A TILL Ö
I programmet finns 11 olika aktiviteter för att träna varje bokstav och på att känna igen ord. För varje bokstav kan olika övningsblad skrivas ut: Inledningsvis väljer du vilken bokstav du vill öva på.
Läs merDigital- och datorteknik
Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KRSNAMN Digital- och datorteknik PROGRAM: KRSBETECKNING EXAMINATOR Data-, elektro- och mekatronikingenjör Åk / lp och
Läs merExtrauppgifter 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 merSkriva B gammalt nationellt prov
Skriva B gammalt nationellt prov Skriva B.wma Då fortsätter vi skrivträningen. Detta avsnitt handlar om att anpassa sin text till en särskild situation, en speciell texttyp och särskilda läsare. Nu ska
Läs mer