CE_O1. Nios II. Enkla assembler-instruktioner.

Storlek: px
Starta visningen från sidan:

Download "CE_O1. Nios II. Enkla assembler-instruktioner."

Transkript

1 IS1500 ösningsförslag till övning CE_O CE_O1. Nios II. Enkla assembler-instruktioner Datorarkitektur för Nios II a) Tabell 3 1 i Nios II Processor Reference Handbook visar processorns register: Register r0 innehåller alltid noll. Register r1 får inte användas kompilatorn använder det vid en del optimeringar. Register r2 r7 och r31 används vid funktionsanrop (även kallade metodanrop eller subrutinanrop) som behandlas på en senare övning. Register r8 r15 får ändras fritt av program. Register r16 r23 får ändras, om det tidigare innehållet först sparas (och sedan återställs). Detta behandlas på övningen om funktionsanrop. Register r24 och r29 får inte användas, utom vid avbrott (interrupts) som behandlas på en senare övning. Register r25 och r30 får inte användas, de används av debuggern. Register r26 och r28 får inte ändras, de används av kompilatorn för läsning och skrivning av globala och lokala variabler. Register r27 är stackpekare och behandlas på en senare övning. b) I Nios II är en instruktion alltid 32 bit (4 byte). ösningsförslag till övning CE_O1, sida 1 (av 10)

2 c) Programräknaren innehåller adressen till nästa instruktion som ska hämtas och utföras. d) När en instruktion har hämtats så ökas innehållet i programräknaren med 4, så att dess värde anger adressen till nästa instruktion som ännu inte har hämtats. Viktigt: det räcker inte att öka programräknarvärdet med 1, eftersom varje instruktion är 4 byte lång Olika grundtyper av assemblerinstruktioner a) Instruktioner för att kopiera information utan att ändra den, från minne till register eller omvänt: load (ld) och store (st) i olika varianter. b) Instruktioner för att kopiera information utan att ändra den, från ett register till ett annat: det finns bara en, mov. c) Instruktioner för att göra en aritmetisk eller logisk beräkning på två värden: artimetiska instruktioner är add, sub, mul och div, i olika varianter, d) Instruktioner för logiska beräkningar är and, or, xor och nor i olika varianter. e) Instruktioner för att skifta eller rotera bitmönstret i ett register: sll, sra, srl, rol och ror i olika varianter. f) Instruktioner för jämförelse av två värden: cmp i olika varianter. g) Instruktioner för hopp, det vill säga ändringar av programräknaren: jmp och br. Viktigt: instruktionen jmpi finns inte i den version av Nios II som används på laborationerna. h) Villkorliga hoppinstruktioner, som bara ändrar programräknaren om värdena i ett eller två register uppfyller ett visst villkor: dessa instruktioner heter b följt av två eller tre bokstäver som anger villkoret oad och Store i processorn Nios II a) Operandutpekningsmetoden för oad och Store i Nios II är alltid följande. Innehållet i ett register och ett konstant värde som finns i en del av instruktionen adderas. Det konstanta värdet kan vara både positivt och negativt. Resultatet av additionen används som minnesadress. Denna operandutpekningsmetod kallas vanligtvis indexerad eller basrelativ. b) Operandstorlek: vanligast är 4 byte (ett "word" i Nios II) ldw och stw. Andra möjligheter är 2 byte (ett "halfword") ldh och sth samt 1 byte, ldb och stb. ösningsförslag till övning CE_O1, sida 2 (av 10)

3 c) Om 4 byte finns minnet och kopieras till ett register så sker kopieringen enligt figuren här till höger. I Nios II kopieras alltså den byte som finns närmast adress 0 i minnet till den minst signifikanta delen av registret. Vid kopiering åt andra hållet placeras den byte som finns i den minst signifikanta delen av registret närmast adress 0 i minnet, så att Store-operationen är symmetrisk med oad-operationen. Se figuren här nedanför. register r0 (zero) r1 ett ord r31 ctl0 (status)... ctl5 (cpuid) program counter stw r8,0(r9) cell 0 cell 1 cell 2 cell 3 cell 4 minne ett ord d) Om 1 byte finns i minnet och kopieras till ett register, så placeras denna byte i den minst signifikanta delen av registret. Alla de övriga bitarna i registret ändras också. När instruktionen ldbu används sätts alla de övriga bitarna i registret till noll. Används i stället instruktionen ldb så sätts de övriga bitarna till samma värde som den mest signifikanta biten i den byte som hämtats. Detta kallas sign extension. Se figuren till höger. register r0 (zero) e) Om 1 byte kopieras från ett register till minnet med instruktionen stb, så ignoreras övriga bytes i registret. Bara den minst signifikanta byten i registret kopieras till minnet. Endast 1 byte skrivs till minnet. r1 ett ord r31 ctl0 (status)... ctl5 (cpuid) program counter register r0 (zero) r1 sign extension r31 ctl0 (status)... ctl5 (cpuid) en byte program counter ldw r8,0(r9) ldb r8,0(r9) cell 0 cell 1 cell 2 cell 3 cell 4 cell 0 cell 1 cell 2 cell 3 cell 4 minne ett ord minne en byte ösningsförslag till övning CE_O1, sida 3 (av 10)

4 1.4. Add och Sub i Nios II a) Operandutpekningsmetoder: add, sub, mul, div och divu har alla operander i register. För addi, subi och muli är den ena källoperanden konstant och finns i en del av instruktionen. b) Endast en storlek på operanderna är möjlig 4 byte (32 bit). c) Möjliga talrepresentationer är heltal med och utan teckenbit. Utan teckenbit är talområdet från 0 till ; med teckenbit är talområdet från (2 31 ) till +(2 31 1). Instruktionerna är definierade så att skillnaden mellan signed och unsigned bara påverkar division, som finns i två varianter (div och divu) Ett första assemblerprogram rak kod med oad och Store Deklarationerna int a; int b; int c; översätts till.data # anger att variabeldeklarationer kommer efter.data.align 2 # behövs för att ett word ska hamna på en giltig adress a:.word 0 # reserverar plats för ett word (4 byte) med innehållet 0 b:.word 0 c:.word 0 Programraden c = a + b; översätts sedan till.text # anger att programkod kommer efter.text.align 2 # behövs för att en instruktion ska hamna på en giltig adress movia r8,a # lägg adressen till variabeln a i r8 ldw r9,0(r8) # läs innehållet i variabeln a från minnet, lägg värdet i r9 movia r8,b # lägg adressen till variabeln b i r8 ldw r10,0(r8) # läs innehållet i variabeln b från minnet, lägg värdet i r10 add r11,r10,r9 # addera innehållen i variablerna a och b movia r8,c # lägg adressen till variabeln c i r8 stw r11,0(r8) # skriv summan till variabeln c i minnet I Nios-II-assembler innebär tecknet # att det som står på resten av raden är kommentar. ösningsförslag till övning CE_O1, sida 4 (av 10)

5 1.6. CMP i Nios II Följande CMP-instruktioner finns (CMP står för CoMPare): cmpeq cmpne cmpge cmpgeu cmpgt cmpgtu cmple cmpleu cmplt cmpltu cmpeqi cmpnei cmpgei cmpgeui cmpgti cmpgtui cmplei cmpleui cmplti cmpltui CMP sätter destinationsregistret till 1 om villkoret är uppfyllt, och till 0 om villkoret inte är uppfyllt. Villkoret anges i assemblerspråket av bokstavskombinationen efter "cmp" (i binärkoden har olika CMP-instruktioner olika operationskoder). Resultatet av jämförelsen lagras alltså som Sant (1) eller Falskt (0) i destinationsregistret. Innehållet i det registret kan användas som villkor i en efterföljande villkorlig hoppinstruktion, eller som källoperand till andra CMP-instruktioner. Det senare kan behövas för att beräkna komplicerade villkor. En minnesregel för att koppla rätt CMP-instruktion till rätt villkor i assemblerspråket för Nios II är att sätta bokstavskombinationen för villkoret mellan de två källoperanderna och sedan läsa ut resultatet. Exempel: tänk på CMPGE r1,r2,r3 som CMP r1, r2 GE r3; läs sedan ut villkoret: "r2 Greater or Equal to r3". Så här läses villkoren: EQ EQual to, NE Not Equal to, GE Greater than or Equal to, GT Greater Than, E ess than or Equal, T ess Than. Vissa villkor finns med och utan "U". "U" står här för "Unsigned", som innebär att mest signifikanta biten tolkas som en "vanlig" bitposition och inte som teckenbit. Ett exempel: CMPGTU tolkar som +4 miljarder, vilket är större än (som förstås är talet +1). Instruktionen CMPGT utan "U" tolkar som 1 (talet "minus 1") vilket är mindre än +1 (som förstås fortfarande skrivs som ). Tips! Tänk efter (vid behov) och svara på: varför finns inte villkoren EQ och NE i Unsigned-versioner? Varje CMP-instruktioner finns också i varianter med och utan "I". "I" står som vanligt för "Immediate" och anger att den högra källoperanden är en konstant som finns i instruktionens binärkod. Konstanten i Immediate-fältet anges med 16 bitar. Vid jämförelse unsigned utvidgas dessa 16 bitar med 16 inledande nollor. Vid jämförelse utan U görs sign extension från 16 till 32 bitar. Effekten av dessa åtgärder är att den uppkomna 32 bitars koden alltid motsvarar samma värde som de 16 bitarna i Immediate-fältet. I MIPS finns samma/liknande instruktioner men de benämns Set on Condition. Funktionen är ju att ett register SÄTTS till TRUE eller FASE beroende på om ett villkor (Condition) är uppfyllt vid jämförelse mellan två värden. ösningsförslag till övning CE_O1, sida 5 (av 10)

6 1.7. Ovillkorliga hopp i Nios II Instruktionerna BR och JMP beräknar en adress, som sedan skrivs till programräknaren. Det gör att nästa instruktion hämtas från den plats i minnet som den beräknade adressen anger. Instruktionen JMP har en källoperand som ska finnas i ett register. Innehållet i källregistret kopieras oförändrat till programräknaren. Instruktionen BR adderar ett konstant tal till programräknarens aktuella värde. Det konstanta talet finns i själva BR-instruktionen och kan vara både positivt och negativt. Positiva tal ger hopp framåt, och negativa tal ger hopp bakåt i programmet. Talet anges med 16 bitar. Eftersom programräknaren uppdateras i varje hämtfas för att peka på nästa instruktion adderas det konstanta talet med adressen till instruktionen omedelbart efter BR-instruktionen Villkorliga hopp i Nios II Följande villkorliga hoppinstruktioner finns: beq bne bge bgeu bgt bgtu ble bleu blt bltu De villkorliga hoppinstruktionerna kan beräkna samma slags villkor som CMP-instruktionerna. Om villkoret är uppfyllt så tas hoppet (programräknaren ändras), annars fortsätter programkörningen med den instruktion som ligger närmast efter den villkorliga hoppinstruktionen i minnet. Det finns bara en operandutpekningsmetod: båda de operander som jämförs måste finnas i register. Det går alltså inte att använda en villkorlig hoppinstruktion för att jämföra ett registerinnehåll med ett konstant värde, som till exempel instruktionen cmpeqi gör. Sådana jämförelser kräver alltså en CMP-instruktion följt av en villkorlig hoppinstruktion. Undantag: det vanligaste konstanta värdet i jämförelser är noll. Eftersom register r0 alltid innehåller noll så kan en villkorlig hoppinstruktion jämföra med noll, så just det värdet kräver ingen CMP-instruktion. Exempel på villkorlig hoppinstruktion: bgt r8,r9,abe # hoppa till ABE om r8 > r9 äget ABE skrivs i programmet som ABE: i början på en rad. Översättningsprogrammet som översätter assemblerprogrammet till binär maskinkod räknar ut avståndet från adressen närmast efter den villkorliga hoppinstruktionen till läget ABE, och får på så sätt fram det tal som ska finnas som konstant värde i hoppinstruktionen. Kom ihåg att avståndet räknas som negativt om ABE finns innan beq r8,r9,abe i programmet (och som positivt om ABE finns efter beq r8,r9,abe). ösningsförslag till övning CE_O1, sida 6 (av 10)

7 1.9. Ett program med villkorligt hopp a) Flödesschema: start a == b? NO c = 17 YES c = 4711 end Deklarationerna ska översättas på samma sätt som tidigare, till.data # anger att variabeldeklarationer kommer efter.data.align 2 # behövs för att ett word ska hamna på en giltig adress a:.word 0 # reserverar plats för ett word (4 byte) med innehållet 0 b:.word 0 c:.word 0 Programraden if( a == b ) /* then */ c = 17; else c = 4711; översätts sedan på olika sätt i de olika deluppgifterna. b) Så här översätts programmet när endast villkorlig hoppinstruktion ska användas..text # anger att programkod kommer efter.text.align 2 # behövs för att ett word ska hamna på en giltig adress movia r8,a # lägg adressen till variabeln a i r8 ldw r9,0(r8) # läs innehållet i variabeln a från minnet, lägg värdet i r9 movia r8,b # lägg adressen till variabeln b i r8 ldw r10,0(r8) # läs innehållet i variabeln b från minnet, lägg värdet i r10 bne r10,r9,elsepart # om innehållen är olika, hoppa till elsepart movi r12,17 # then-delen kommer här, förbered för att lägga 17 i c bra afterall # hoppa förbi else-delen elsepart: # else-delen kommer här movi r12,4711 # förbered för att lägga 4711 i c afterall: # följande del av programkoden utförs alltid movia r8,c # lägg adressen till variabeln c i r8 stw r12,0(r8) # skriv slutresultatet till variabeln c i minnet Påminnelse: i Nios-II-assembler innebär tecknet # att det som står på resten av raden är kommentar. ösningsförslag till övning CE_O1, sida 7 (av 10)

8 c) Så här översätts programmet när CMP-instruktion ska användas..text # anger att programkod kommer efter.text.align 2 # behövs för att ett word ska hamna på en giltig adress movia r8,a # lägg adressen till variabeln a i r8 ldw r9,0(r8) # läs innehållet i variabeln a från minnet, lägg värdet i r9 movia r8,b # lägg adressen till variabeln b i r8 ldw r10,0(r8) # läs innehållet i variabeln b från minnet, lägg värdet i r10 cmpeq r11,r10,r9 # jämför om innehållen i variablerna a och b är lika beq r11,r0,elsepart # om (false) innehållen var olika, hoppa till elsepart movi r12,17 # then-delen kommer här, förbered för att lägga 17 i c br afterall # hoppa förbi else-delen elsepart: # else-delen kommer här movi r12,4711 # förbered för att lägga 4711 i c afterall: # följande del av programkoden utförs alltid movia r8,c # lägg adressen till variabeln c i r8 stw r12,0(r8) # skriv slutresultatet till variabeln c i minnet Påminnelse: i Nios-II-assembler innebär tecknet # att det som står på resten av raden är kommentar Ett program med slinga (loop) Originalprogrammet ser alltså ut så här: int n; int sum; int i; /* Här emellan finns det mera programkod som vi inte tittar på just nu */ sum = 0; for( i = 1; i <= n; i = i + 1 ) sum = sum + i; Se flödesschemat till höger. a) Med while-slinga deklarationerna i början behålls, resten byts ut mot följande. sum = 0; i = 1; while( i <= n ) { sum = sum + i; i = i + 1; } NO start sum := 0 i := 1 i < = n? YES sum := sum + i i := i + 1 end ösningsförslag till övning CE_O1, sida 8 (av 10)

9 b) Med if(... ) goto... Deklarationerna behålls, resten byts ut mot följande. sum = 0; i = 1; loop: if( i > n ) goto endofloop; /* Obs! Villkoret har inverterats. */ sum = sum + i; i = i + 1; goto loop; endofloop: /* Här fortsätter programmet. */ c) Motsvarande program i assembler för Nios II..data # Detta är ett direktiv till assemblern. Det som kommer efter.data läggs i en del av minnet som är reserverad för data. Data måste ligga i läs- och skrivbart minne (RAM). sum:.word 0 # Reservera plats för variabeln sum. i:.word 0 # Reservera plats för variabeln i. n:.word 17 # Reservera plats för variabeln n. 1:.text # Detta är också ett assemblerdirektiv. Det som kommer efter.text läggs i en del av minnet som är reserverad för programkod. Programkod kan ligga i skrivskyddat minne. movia r8,sum # Peka ut första variabeln. stw r0,0(r8) # Nollställ summan, r0 innehåller ju noll. movi r9,1 # förbered för att sätta i till 1. stw r9,4(r8) # i sätts till 1. ldw r10,4(r8) # äs i. ldw r11,8(r8) # äs n. bgt r10,r11,2 # Om i > n, hoppa till 2. 2: ldw r11,0(r8) # äs sum. add r11,r11,r10 # Addera i till sum. stw r11,0(r8) # Spara summans nya värde. ldw r10,4(r8) # äs i. addi r10,r10,1 # Öka i:s värde med 1. stw r10,4(r8) # Spara i:s nya värde. br 1 # Gå till slingans början. Assemblerprogrammet är skrivet i en speciell stil. I denna programmeringsstil översätts varje C-sats var för sig, till en eller flera assemblerinstruktioner. Variablerna finns i minnet. Varje variabel läses från minnet före varje uppdatering, och det nya värdet skrivs tillbaka till minnet direkt efter varje uppdatering. För att hitta rätt variabel utnyttjar den här programmeringsstilen att variablerna är deklarerade i tur och ordning efter varandra. Programmeraren har utnyttjat detta ösningsförslag till övning CE_O1, sida 9 (av 10)

10 genom att placera adressen till den första variabeln i ett register, r8, som sedan inte ändras. Då kan varje variabel läsas och skrivas med oad- och Store-instruktioner som använder register r8 och ett offset 0(r8), 4(r8) eller 8(r8) beroende på vilken variabel som refereras. Programmeringsstilen är tänkt att likna den assemblerkod som en C-kompilator producerar, när man inte begär någon optimering alls. Stilen har fördelar framför allt vid felsökning. Eftersom varje C-programrad översätts separat är det lätt att koppla en assemblerprogramrad till motsvarande C-programrad. Det går förstås att korta ner det här assemblerprogrammet, det vill säga optimera det. En möjlighet, som kan verka självklar, är att lägga variablerna i och sum i varsitt register och inte skriva deras värden till minnet förrän efter hela slingan är klar, efter läget 2. C-kompilatorn kan göra detta, men bara om användaren aktiverar optimering. ösningsförslag till övning CE_O1, sida 10 (av 10)

CE_O2. Nios II. Subrutiner med mera.

CE_O2. Nios II. Subrutiner med mera. IS1500 Lösningsförslag till övning CE_O2 2014 CE_O2. Nios II. Subrutiner med mera. 2.1. Binära lagringsformat R-type: (Register-format) ra (5 bit) rb (5 bit) rc (5 bit) operationskod (17 bit) Detta format

Läs mer

IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1

IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 IS1200 Datorteknik Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 1 4.1 Little och big endian 2 Nios II? Nios II är Little-endian (men eftersom det är en soft-processor

Läs mer

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

Ö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-

Läs mer

Att använda pekare i. C-kod

Att 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 mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

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

Läs mer

Assemblerprogrammering för ARM del 2

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

Läs mer

Stack och subrutiner Programmeringskonventionen

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

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

CE_O3. Nios II. Inför lab nios2time

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

Läs mer

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11 A basic -bit Select between various operations: OR, AND, XOR, and addition Full Adder Multiplexer Digitalteknik och Datorarkitektur hp Föreläsning : introduktion till MIPS-assembler - april 8 karlmarklund@ituuse

Läs mer

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination Extra lab Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination Erfarenheter från projektstart Läs på i Downey om klasser och objekt! När kan/ska man använda self? När bollarna

Läs mer

Institutionen för datavetenskap 2014/15

Institutionen för datavetenskap 2014/15 LUNDS TEKNISKA HÖGSKOLA Datorer och datoranvändning Institutionen för datavetenskap 2014/15 ME en dator 1 Inledning ME är en påhittad dator, men den har likheter med riktiga datorer: det finns ett maskinspråk

Läs mer

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.

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. Laboration:. Jämförelser mellan assembler och C. 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. Förberedelser:

Läs mer

F4: Assemblerprogrammering

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

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens 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 mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

Datorsystem Laboration 2: Minnesmappade bussar

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

Läs mer

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

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin. 1(5) Övningstentamen i Mikrodatorer och assemblerprogrammering, ELGA05 Hjälpmedel: Bifogad lista med memokoder för MC68xxx. Samtliga programmeringsuppgifter ska innehålla flödesschema med förklaringar

Läs mer

Digital- och datorteknik

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

Läs mer

4. Maskinnära programmering i C. Förberedelser till hemlaboration 1.

4. Maskinnära programmering i C. Förberedelser till hemlaboration 1. IS1200 ösningar till exempel, övning 4, 2015 4. Maskinnära programmering i C. Förberedelser till hemlaboration 1. 4.1. Big-endian och little-endian När heltal, flyttal och adresser ska lagras i datorns

Läs mer

Digital- och datorteknik

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

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

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

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. Övningsuppgifter Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. F.2 Ett antal på varandra följande minnesord har

Läs mer

Programmerbar logik. Kapitel 4

Programmerbar logik. Kapitel 4 Kapitel 4 Programmerbar logik Programmerbar logik (PLC: Programmable Logic Controller; fi. ohjelmoitava logiikka) är en sorts mikrodatorliknande instrument som är speciellt avsedda för logik- och sekvensstyrningsproblem.

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

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,

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)

Läs mer

DatorsystemteknikDAVA14 Föreläsning 9

DatorsystemteknikDAVA14 Föreläsning 9 DatorsystemteknikDAVA14 Föreläsning 9 epetition: MP likainstruktioneri Exempel på instruktionstyper Processorns uppbyggnad Pipelining törre delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson

Läs mer

Styrenheten styrsignalsekvenser programflödeskontroll

Styrenheten styrsignalsekvenser programflödeskontroll Styrenheten styrsignalsekvenser programflödeskontroll Kontroll av programflöde Instruktionerna är ordnade sekventiellt i minnet och utförs normalt i denna ordning. Vissa programkonstruktioner kräver dock

Läs mer

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

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

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

CPU. Carry/Borrow IX. Programräknare

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

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

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

Läs mer

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. 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

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

A-del motsvarande KS1

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

Läs mer

Programexempel för FLEX

Programexempel för FLEX Aktivera Kursens mål: Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruera styrenheten. genom att. implementera olika maskininstruktioner i styrenheten. Kunna använda

Läs mer

Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000

Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000 1(6) Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 Följande är skisser till lösningar av uppgifterna. Full poäng på en uppgift kräver i de flesta fall en något fylligare motivering.

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik 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 mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #18 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblerprogrammering Assemblatorer vs kompilatorer

Läs mer

Styrteknik: MELSEC FX och numeriska värden

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

Läs mer

CE_O3. Nios II. Stackhantering och förberedelse för lab nios2time

CE_O3. Nios II. Stackhantering och förberedelse för lab nios2time IS1200 ösningsförslag till övning CE_O3 2015 CE_O3. Nios II. Stackhantering och förberedelse för lab nios2time 3.1. ogiska operationer Nios II kan utföra de logiska operationerna AND, OR, XOR och NOR.

Läs mer

Tentamen Datorteknik Y, TSEA28 Datum 2012-08-14

Tentamen Datorteknik Y, TSEA28 Datum 2012-08-14 Tentamen Datorteknik Y, TSEA28 Datum 2012-08-14 Lokal TER2 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Datorteknik Y Institution ISY Antal frågor 6 Antal sidor (inklusive denna sida) 7 Kursansvarig Andreas

Läs mer

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. 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

Läs mer

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. 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äs mer

Datorsystemteknik DVGA03 Föreläsning 8

Datorsystemteknik DVGA03 Föreläsning 8 Datorsystemteknik DVGA03 Föreläsning 8 Processorns uppbyggnad Pipelining Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Innehåll Repetition av instruktionsformat

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblatorer vs kompilatorer En assemblator är ett program

Läs mer

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

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äs mer

Grundläggande datavetenskap, 4p

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

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-08-21 Lokal TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

CE_O5. Cacheminne. Hemlaboration 2.

CE_O5. Cacheminne. Hemlaboration 2. IS1500 Exempelsamling till övning CE_O5, 2014 CE_O5. Cacheminne. Hemlaboration 2. 5.1. Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne

Läs mer

Tentamen. Datorteknik Y, TSEA28

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

Läs mer

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Inledande programmering med C# (1DV402) 27+15=42 1 (22) 27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-10-20 Lokal TERE, TER2 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-10-31 Lokal TER4 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

IS1500 Lösningar övning CE_O7 2014. CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.

IS1500 Lösningar övning CE_O7 2014. CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io. IS1500 ösningar övning CE_O7 2014 CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io. 6.1. Vad är seriell kommunikation? a) Vad är skillnaden mellan seriell och parallell kommunikation?

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

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

Läs mer

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. 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

Läs mer

Digital Aritmetik Unsigned Integers Signed Integers"

Digital Aritmetik Unsigned Integers Signed Integers Digital Aritmetik Unsigned Integers Signed Integers" Slides! Per Lindgren! EISLAB! Per.Lindgren@ltu.se! Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Talrepresentationer" Ett tal kan representeras

Läs mer

Övning 7. Timer, serieport

Övning 7. Timer, serieport Övning 7 Timer, serieport 7.6 timer_1 Memory-Mapped addresses 0x920 status 0x924 control 0x928 periodl 0x92C periodh 0x930 snapl 0x934 snaph 15 0 Run TO (Time-Out) ITO cont start stop timer_1 start D Q

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen Föreläsning 11 OR-datorn är för långsam! Alternativa arkitekturer kritik av OR-datorn RISC => pipelining LDA 13 (exempelvis) Hämta : 3CP 2 1 CP Absolut,1: 3 CP EXE: 4 CP Summa: 11 CP mem ADR XR SP DR TR

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

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,

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Lösningar till övning CE_O CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.

Lösningar till övning CE_O CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io. ösningar till övning CE_O6 2014 CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io. 6.1. äs in data från IN-port ( skjutomkopplare TOGGES18) a) ösningsförslag i Nios-II-assembler..equ

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

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

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

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2017-06-02 Lokal G35, TER2, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor

Läs mer

Övning 6. Parallellport, timer

Ö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

Läs mer

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

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

Läs mer

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål Datorteknik Föreläsning 6 Processorns uppbyggnad, pipelining Mål Att du ska känna till hur processorn byggs upp Att du ska kunna de viktigaste byggstenarna i processorn Att du ska känna till begreppet

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens 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 för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1 Assemblerprogrammering för ARM del 1 Ur innehållet: Assemblerspråk Ordlängder och heltalstyper i C Variabeldeklarationer Programkonstruktioner Tilldelningar Uttrycksevaluering Ovillkorliga programflöden

Läs mer

Datorsystem. Tentamen 2011-10-29

Datorsystem. Tentamen 2011-10-29 Datorsystem Tentamen 2011-10-29 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar

Läs mer

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1. PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än

Läs mer

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk

Läs mer

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5 16 Programmering Skriva program till TI-86... 214 Köra program... 221 Arbeta med program... 223 Hämta och köra assemblerprogram... 226 Arbeta med strängar... 227 TI -86 M1 M2 M3 M4 M5 F1 F2 F3 F4 F5 214

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-06-01 Skrivtid 9.00-14.00 (5 timmar) Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376

Läs mer

Tentamen i EIT070 Datorteknik

Tentamen 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 mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system EITA5 5hp varav denna tentamen 4,5hp Institutionen för elektro och informationsteknik Campus Helsingborg, LTH 289 8. 3. (förlängd 4.) Uppgifterna i tentamen ger totalt 6 poäng.

Läs mer

Tentamen Datorteknik Y, TSEA28 Datum 2012-06-02 TER2, TER4, TERE Tid 14-18

Tentamen Datorteknik Y, TSEA28 Datum 2012-06-02 TER2, TER4, TERE Tid 14-18 Tentamen Datorteknik Y, TSEA28 Datum 2012-06-02 Lokal TER2, TER4, TERE Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Datorteknik Y Institution ISY Antal frågor 7 Antal sidor (inklusive denna sida) 10

Läs mer

Föreläsning 4: Poster

Föreläsning 4: Poster Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra

Läs mer

Föreläsningsanteckningar 3. Mikroprogrammering II

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

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28 Tentamen (Exempel) Datorteknik Y, TSEA28 Datum 2018-05-29 Lokal KÅRA,T1,T2, Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal

Läs mer

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn. 0.1. INTRODUKTION 1 0.1 Introduktion Datorns klockfrekvens mäts i cykler per sekund, eller hertz. En miljon klockcykler är en megahertz, MHz. L1 cache (level 1) är den snabbaste formen av cache och sitter

Läs mer

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704

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

Läs mer

Omtentamen i CDT204 - Datorarkitektur

Omtentamen i CDT204 - Datorarkitektur Omtentamen i CDT204 - Datorarkitektur 2012-11-05 Skrivtid: 08.10-12.30 Hjälpmedel: Miniräknare och valfritt skriftligt (ej digitalt) material. Lärare: Stefan Bygde, kan nås på 070-619 52 83. Tentamen är

Läs mer

LEU240 Mikrodatorsystem

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

Läs mer

Programmera 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?? 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 mer