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

Relevanta dokument
Maskinorienterad programmering

Maskinorienterad programmering

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

Digital- och datorteknik

Maskinorienterad programmering

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

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

Digital- och datorteknik

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

Digital- och datorteknik

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

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

TENTAMEN (med svar och vissa lösningar)

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

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

Assemblerprogrammeringsuppgifter för FLIS-processorn

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

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

TENTAMEN(Nu anpassad till FLIS- processorn)

Exempel på tentamen 1

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

Avbrottshantering. Övningsuppgifter

TENTAMEN (Något redigerad)

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Tentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar

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

Digital- och datorteknik

Digital- och datorteknik

Tentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar

Digital- och datorteknik

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Extrauppgifter för CPU12

EDA Digital och Datorteknik

Exempel 3 på Tentamen

Programmering i maskinspråk (Maskinassemblering)

Assemblerprogrammering

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

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

Programmering i maskinspråk (Maskinassemblering)

CHALMERS TEKNISKA HÖGSKOLA

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Tentamen i Datakunskap NT

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

Grundläggande Datorteknik Digital- och datorteknik

Digital- och datorteknik

Assemblerprogrammering del 1

Digital- och datorteknik

Tentamen (Svar och lösningsförslag)

Exempel 1 på Tentamen med lösningar

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

EDA215 Digital- och datorteknik för Z

Tentamen med lösningar

Programexempel för FLEX

Exempel 2 på Tentamen med lösningar

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

EDA451 - Digital och Datorteknik 2009/2010. EDA Digital och Datorteknik 2009/2010. Binär Kodning, lärobokens kap.2

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

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

Inledning. Statistisk Programmering. UNIVAC 1107 (sextio- och sjuttiotal) Hålkorten. Att använda dator

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Lösningsförslag tenta

Digital- och datorteknik

Tentamen med lösningsförslag

Binär kodning. Binära koder. Tal och talsystem positionssystem för basen 10. Begrepp. Begrepp Tal och talsystem Talomvandling ASCII-kod NBCD Gray-kod

Tentamen med lösningsförslag

Digital- och datorteknik

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

Tentamen med lösningsförslag

PARITETSKONTROLL. Om generatorn i vidstående exempel avkänner ett jämt antal ettor ger den en nolla ut. Detta innebär att överföringen

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Övningsuppgifter i Mikrodatorteknik 4p/5p

Lösningar till tentamen i EIT070 Datorteknik

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

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

Adressavkodning - busskommunikation

Assemblerprogrammets struktur; exempel

LEU240 Mikrodatorsystem

Tentamen med lösningsförslag

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

Tentamen med lösningsförslag

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

Tentamen med lösningsförslag

Maskinorienterad Programmering 2010/11

Lösningar till tentamen i EIT070 Datorteknik

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl

LV6 LV7. Aktivera Kursens mål:

Tentamen. DIT150 Maskinorienterad programmering GU DAT015 Maskinorienterad programmering IT. Söndag 17 december 2006, kl

Tentamen med lösningsförslag

Programmering Grundkurs (HI1900) Teoridel

Digital- och datorteknik

Tentamen med lösningsförslag

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

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

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.

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Tentamen med lösningsförslag

Transkript:

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/ lp 3 KURSBETECKNING LEU500 EXAMINATOR Lars-Eric Arebrink TID FÖR TENTAMEN Lördag 2011-01-15 kl 8.30 12.30 HJÄLPMEDEL Av institutionen utgiven Instruktionslista för CPU12 (INS2) Tabellverk eller miniräknare får ej användas. ANSV LÄRARE: Lars-Eric Arebrink 772 5718 besöker tentamen DATUM FÖR ANSLAG av resultat samt av tid och plats för granskning Vid flera tillfällen Resultatlistor anslås senast 2011-02-03 på kursens hemsida. Granskning på institutionen 2011-02-03 och 2011-02-04 kl 12.30-13.00. ÖVRIG INFORM. Tentamen omfattar totalt 60 poäng. BETYGSGRÄNSER. 24p betyg 3 < 36 p betyg 4 < 48 p betyg 5 SLUTBETYG För godkänt slutbetyg 3, 4 eller 5 på kursen fordras betyg 3, 4 eller 5 på tentamen samt godkända laborationer.

1. Besvara kortfattat följande frågor, som alla utom h) - j) avser CPU12. 2 a) Assemblerinstruktionen ANDCC #$FE kan skrivas på ett alternativt sätt. Visa detta sätt. b) Vilken assemblerinstruktion har den hexadecimala maskinkoden 18 09 5A 15 38? c) Översätt assemblerinstruktionen ORAB -100,SP till maskinspråk. Visa hur maskinkoden placeras i minnet. d) Översätt assemblerinstruktionen IBNE D,$1742 till maskinspråk. Operationskoden finns på adressen 1800 16. Visa hur maskinkoden placeras i minnet. För vilka värden W (0 W 255) utförs hoppet i programavsnitten e) och f)? e) LDAA #$63 CMPA #W BHI Hopp f) LDAB #$63 CMPB #W BPL Hopp (Tänk på att overflow kan inträffa!) g) Vid kommunikation via en busslednig skickar CAN-noder ibland stuffbitar. Förklara vad som menas med detta och varför de används. h) Skriv talet -200,375 som ett flyttal enligt IEEE-standard 754 (23 bitar av mantissan och 8 bitars karakteristika). i) Exponenten i ett flyttal enligt IEEE-standard 754-1985 kodas och placeras på ett speciellt sätt i det packade flyttalet. Förklara orsaken till att exponenten kodas och placeras på detta sätt.

2. a) Hur många E-klockperioder använder CPU12 (HCS12) för att köra programsekvensen nedan? 3 ORG $1000 LDX #TAB TFR X,Y LDD 4,X YLOOP LDX 6,Y XLOOP DBNE X,XLOOP DBNE D,YLOOP BRA NEXT TAB FDB 15,-7,10,5,20,4,8 NEXT NOP b) Skriv en subrutin (XCNT) i assemblerspråk för CPU12, som räknar antalet ettor i X-registret och returnerar detta antal i B-registret. Vid återhopp får endast flaggorna och B-registret vara påverkade. Radkommentarer skall finnas. c) I minnet i en dator med CPU12 finns två lika långa strängar STRING1 och STRING2 med 8-bitars dataord med tecken. Strängarna avslutas med dataordet FF 16, som bara förekommer som slutord. Skriv en subrutin STRADD i assemblerspråk för CPU12 som adderar varje dataord (ej slutordet) i STRING2 till motsvarande dataord i STRING1 och placerar varje åttabitars summa i STRING1. Subrutinen skall dessutom räkna antalet additioner som ger overflow och returnera detta antal i D-registret. Vid anrop av STRADD finns adressen till STRING1 i X-registret och adressen till STRING2 i Y-registret. Vid återhopp får endast flaggorna och D-registret vara påverkade. Radkommentarer skall finnas. (7p) 3. Ett datorsystem visas nedan: Adressbuss E A 15 -A 0 R/W RWM ROM In/Utportar Processor CPU12 CS R/W RWM CS ROM Indata (8) OE 1 Utdata(8) C Register (8) Databuss Figuren ovan visar principen för anslutning av externa minnesmoduler och externa in-/utportar till processorn CPU12. En 32 kbyte RWM-modul skall i princip vara placerad från adress 0, men de första 4096 adresserna i adressrummet skall inte aktivera någon minnesmodul eller port vid läsning eller skrivning. En inport och en utport skall också anslutas. De skall ha samma adress och placeras på sista adressen i RWM-modulen. Det innebär att inporten skall prioriteras före RWM-modulen. Resten av adressrummet skall fyllas ut med en 32 kbyte ROM-modul. Rita en för minnesmodulerna och portarna. Använd fullständig adressavkodning. Endast grundläggande logikgrindar med valfritt antal ingångar får användas. (8p)

4 4. En dator med processorn CPU12 skall användas i styrenheten i en maskin. Styrprogrammet skall läsa av två givare via IRQ-avbrott, Givare1 tio gånger per sekund och Givare2 en gång per sekund. Databitarna (8 st) från givarna är anslutna till inportar på de symboliska adresserna PORT1 och PORT2. Det finns en binär signal med den konstanta frekvensen 50 Hz tillgänglig för generering av avbrott och en ledig inport finns på adressen 810 16. Adresserna 818 16-81F 16, som är avsedda för I/O-enheter, används inte av systemet och kan användas vid behov. Det finns inga fler avbrottskällor. a) Föreslå en koppling för avbrottsgenerering på processorns IRQ -ingång. D-vippor, NAND- och NOT-grindar får användas. b) Skriv en avbrottsrutin IRQRUT, som läser av givarna enligt beskrivningen ovan och placerar de avlästa värdena på de symboliska adresserna GIV1 och GIV2 i minnet. Ledigt utrymme för globala variabler finns på adresserna 1820 16-182F 16. c) Skriv ett avsnitt av huvudprogrammet där IRQ-avbrott initieras. IRQ-vektorn antas vara placerad i RWM på adresserna FFF2 16 och FFF3 16. Avbrottsrutinen börjar på adressen IRQRUT. Alla symboliska adresser ovan är definierade på annat ställe i programmet. Assemblerspråk för processorn CPU12 skall användas. Radkommentarer skall finnas! 5. I programmeringsspråket C finns den sk switch-satsen med vilken man kan göra flerval. Det innebär att man från ett ställe i programmet kan fortsätta på ett av flera olika ställen. Ett exempel på ett sådant flerval ges nedan. I en styrenhet för en maskin används CPU12. Ett avsnitt av styrprogrammet skall läsa av värdet SEL (8 bitar), som finns på en inport på den symboliska adressen INPORT, och därefter utföra ett hopp till en av fyra olika adresser, ADR0-ADR3. Vilken av adresserna som väljs bestäms av värdet på variabeln SEL. Om SEL = 0 utförs hopp till ADR0, om SEL = 1 utförs hopp till ADR1 osv. Om SEL > 3 skall hopp ske till den symboliska adressen ERROR. De fyra olika hoppadresserna skall finnas lagrade i minnet i en tabell i styrprogrammet. Vid laddning av programmet i minnet skall också tabellen med hoppadresserna laddas. Skriv ett huvudprogram som först initierar stackpekaren till 2000 16 och sedan läser värdet SEL som finns på inporten på adressen INPORT. Om SEL < 4 utförs hopp till en adress enligt beskrivningen i föregående stycke. Om SEL > 3 utförs hopp till adressen ERROR. Programmet skall skrivas i assemblerspråk för CPU12 och startadressen skall vara 1000 16. Programmet skall utformas som flerval och inte som upprepade tvåval. Subrutinernas startadresser ADR0-ADR3 skall vara 1100 16, 1150 16, 1200 16, och 1380 16. Radkommentarer skall finnas! (7p) 6. Vilken är fördelen och vilken är nackdelen med direct mapped cache?

Bilaga 1 Assemblerspråket för CPU12. 5 Assemblerspråket använder sig av mnemoniska beteckningar som processorkonstruktören MOTOROLA specificerat för maskininstruktioner och instruktioner till assemblatorn, s k pseudoinstruktioner eller assemblatordirektiv. Pseudoinstruktionerna listas i tabell 1. Tabell 1 Direktiv ORG N L RMB N L EQU N L FCB N1, N2 L FDB N1, N2 L FCS ABC Förklaring Placerar den efterföljande koden med början på address N. (ORG för ORiGin = ursprung) 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å adressen L. (RMB för Reseve Memory Bytes) Ger symbolen L konstantvärdet N. (EQU för EQUates = beräknas till) Avsätter en byte för varje argument i följd i minnet. Respektive byte ges konstantvärdet N1, N2 etc. Följden placeras med början på adressen L. (FCB för Form Constant Byte) Avsätter ett bytepar (två bytes) för varje argument i följd i minnet med mest signifikant byte på den lägsta adressen. Respektive bytepar ges konstantvärdet N1, N2 etc. Följden placeras med början på adressen L. (FDB för Form Double Byte) Avsätter en byte för varje tecken i teckensträngen ABC i följd i minnet. Respektive byte ges ASCII-värdet för A B C, etc. Följden placeras med början på adressen L. (FCS för Form Character String) ASCII-koden Tabell 2 7-bitars ASCII 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 b 6 b 5 b 4 b 3 b 2 b 1 b 0 NUL DLE SP 0 @ P ` p 0 0 0 0 SOH DC1! 1 A Q a q 0 0 0 1 STX DC2 2 B R b r 0 0 1 0 ETX DC3 # 3 C S c s 0 0 1 1 EOT DC4 $ 4 D T d t 0 1 0 0 ENQ NAK % 5 E U e u 0 1 0 1 ACK SYN & 6 F V f v 0 1 1 0 BEL ETB 7 G W g w 0 1 1 1 BS CAN ( 8 H X h x 1 0 0 0 HT EM ) 9 I Y i y 1 0 0 1 LF SUB * : J Z j z 1 0 1 0 VT ESC + ; K [Ä k {ä 1 0 1 1 FF FS, < L \Ö l ö 1 1 0 0 CR GS - = M ]Å m }å 1 1 0 1 S0 RS. > N ^ n ~ 1 1 1 0 S1 US /? O _ o RUBOUT (DEL) 1 1 1 1