rd, rs, rt Digitalteknik och Datorarkitektur 5hp ALU register) 32 bit register b 5 bit 32 Registers 32 bit MIPS is a Register-toregister
|
|
- Lina Arvidsson
- för 5 år sedan
- Visningar:
Transkript
1 A basic 2-bit ALU The Von Neuman Model register a 5 bit register b 5 bit 32 Registers 32 bit 32 bit Digitalteknik och Datorarkitektur 5hp MIPS is a Register-toregister architecture ALU OP Föreläsning 5: strängar, arrayer, loopar, if-satser, subrutiner och stacken 14 april 2008 karlmarklund@ituuse register c 5 bit 32 bit 32 bit ALU add addi sub subi seq Anger vilken operation vill vi utföra rd, rs, imm Den generella formen för instruktion i MIPS-assembler op Anger vilket register som innehåller den första operanden Anger vilket register som skall lagra resultatet Anger vilket register som innehåller den andra operanden Det finns ingen subi instruktion eftersom det funkar lika bra med addi och negativ immediate konstant Vi har hittils kollat på dessa instruktioner Varje cell har en unik adress Fyra bytes bildar ett ord (word) om 32 bitar MEMORY Address Content 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFD 0xFFFFFFFC 0x x x x I MIPS består minnet av 2 32 celler Varje cell i minnet kan lagra åtta bitar, dvs en byte MIPS is a Load-Store architecture which means only load and store instructions are allowed to access memory lw sw rt, address rt, address Assemblator-direktiv vi känner till data text word space Address format (register) imm imm(register) label label +/- imm label +/- imm(register) Address computation Content of register Immediate Immediate + content of register Address of label Address of label + /- immediate Address of label +/- (Immediate + content of register) 1
2 Raden ger den minst signifikanta siffran Kolumnen ger den mest signifikanta siffran Vi ser i tabellen att ASCII-värdet för är Ett direktiv som lagrar en nullterminerad sträng i datasegment STR: data asciiz "abcdefghijklmnopqrstuvxyz" text globl main strings Load Byte: lb la $t0, STR lw $t1, 0($t0) Varje tecken tilldelas ett ASCII-värde, på åtta bitar och kan alltså lagras i en byte ASCII-värdet för ett tecken kan skrivas som ett tvåsiffrigt hexadecimalt tal Åh Va kul ett nytt häftigt direktiv lb lb lb lb $t2, 0($t0) $t3, 1($t0) $t4, 2($t0) $t5, 3($t0) ASCII = American Standard Code for Information Interchange Vår sträng startar på adress Vår sträng startar på adress Kör på skolans SUN-Ray system c 0x63 0x b 0x62 0x b 0x62 0x c 0x63 0x [] x x6c6b6a69 0x706f6e6d [0x ] 0x x x a 0x [] x x696a6b6c 0x6d6e6f70 [0x ] 0x x x797a0000 0x x68 c b 0x63 0x62 0x x Little Endian c b 0x63 0x62 0x x Intel x86, använder little endian Skumt Vi lagrar samma sträng och får olika ord? SPARC b c 0x62 0x63 0x x Ett ord adresseras med adressen till den minst signifikanta byten Power PC och SPARC använder big endian Big Endian b c 0x62 0x63 0x x Ett ord adresseras med adressen till den mest signifikanta byten 2
3 En MIPS-processor kan konfigureras att använda antingen Big Endian eller Little Endian SPIM är en simulator och har valt att använda sama byte-order som den underliggande fysiska maskinen print_string_and_integers Här skriver vi ut en sträng med hjälp av Här skriver vi ut ett heltal med hjälp av data STR: asciiz "Hello world, your lucky number is: " text globl main system call code for print_str address of string to print la $a0, STR system call code for print_int integer to print addi $a0, $zero, 44 SPIM fuskar lite genom att stödja några operativsystems-liknande systemanrop Load Immediate Det går även att klicka på denna ikon Om man känner sig lite vågad behöver man inte steppa sitt program Det går att köra från början till slut I Windows är det inte helt oväntat bara att trycka på F5 Utskriften sker till en konsoll som öppnas i ett eget fönster loops text globl main add $t0, $zero, $zero loop-counter i addi $s0,$zero, 5 loop limit N loop: beq $t0, $s0, done for i = 0(N-1) integer to print Branch on EQual: beq add $a0, $zero, $t0 Om $t0 == $t5, hoppa till system call code for print_int etiketten done Annars fortsätt med nästa instruktion addi $t0, $t0, 1 i ++ j loop done: Jump är av J-typ Exempel på bra kommentarer Vilken typ av instrukton är beq? En R-typ eller en I-typ? Maskinkod: 0x Hexadecimalt 0x11 0x10 0x00 0x06 Decimalt 1* = 17 1*16 1 = *16 0 = 6 Register 8 Register 16 Branch offset 6 Binärt op rs rt immediate OP-kod = 4 för beq Aha beq är en I-typ 3
4 if_then_elses Branch Not Equal: bne Viktigt att ge etiketter namn som beskriver vad programet gör data STR_THEN: asciiz "lika!" STR_ELSE: asciiz "olika!" text globl main Tillsammans med bra etiketter blir det enklare att dokumentera sitt program li $t0, 15 a addi $t1, $zero, 15 b if: bne $t0, $t1, else if (a==b) then: system call for print_str la $a0, STR_THEN j end_if else: system call for print_str la $a0, STR_ELSE end_if: arrays data NL: asciiz "\n" SIZE: word 10 ARRAY: word 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 text globl main add $t0, $zero, $zero array index i lw $t2, SIZE loop: beq $t0, $t2, done for e in ARRAY lw $a0, 0($t0) print e print \n la $a0, NL addi $t0, $t0, 1 next element Tusan Nått gick galet! Exception occurred at PC=0x Bad address in data/stack read: 0x j loop done: arrays data NL: asciiz "\n" Vi får endast ladda SIZE: word 10 data från datasegmentet ARRAY: word 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 text globl main add $t0, $zero, $zero array index i 0x ligger helt klart utanför lw $t2, SIZE detta loop: beq $t0, $t2, done for e in ARRAY lw $a0, 0($t0) print e print \n la $a0, NL Vi satt ju $t0 till noll i början försöker addi $t0, $t0, 1 ladda ord från next element j loop adress noll i minnet och där ligger ju inte vår array done: arrays För att det skall fungera måste vi göra följande ändringar Shif Left Logical: sll Att multiplicera med 4 är samma sak som att shifta två bitar till vänster data NL: asciiz "\n" SIZE: word 10 ARRAY: word 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 text globl main add $t0, $zero, $zero array index i la $t1, ARRAY lw $t2, SIZE loop: beq $t0, $t2, done for e in ARRAY sll $t4, $t0, 2 a = 4*i add $t3, $t1, $t4 p = ARRAY + a lw $a0, 0($t3) print ARRAY[i] print \n la $a0, NL addi $t0, $t0, 1 next element j loop done: 4
5 array_of_strings Börjar att deklarera tre strängar i datasegmentet Varje etikett motsvarar nu startadressen för en sträng Largra dessa startadresser i datasegementet, dvs skapa en array av adresser till strängar data STR_1: asciiz "The sum of " STR_2: asciiz " and " STR_3: asciiz " is " ARRAY_OF_STRINGS: Each element is an address to a string word STR_1, STR_2, STR_3 0x x Etiketten ARRAY_OF_STRINGS har adress 0x På denna plats lagras adressen till STR_1 array_of_strings (text segment part one) text globl main Just for fun, get the address of label "ARRAY_OF_STRINGS": la $t0, ARRAY_OF_STRINGS addi $a1, $zero, 3 a addi $a2, $zero, 11 b Must copy $a0 since the s used later needs $a0 Hämta adressen till STR_1 The sum of add $t0, $a0, $zero Print "The sum of " lw $a0, ARRAY_OF_STRINGS Hämta adressen till STR_2 and Print the value of a add $a0, $zero, $a1 Print " and " lw $a0, ARRAY_OF_STRINGS + 4 Andra elementet i ARRAY_OF_STIRINGS ligger fyra byte längre fram array_of_strings (text segment part two) Hämta adressen till STR_3 is Print the value of b add $a0, $zero, $a2 Print " is " lw $a0, ARRAY_OF_STRINGS + 8 Print the sum a + b add $a0, $a1, $a2 Tredje elementet i ARRAY_OF_STIRINGS ligger åtta byte längre fram ASCII( T ) = 0x54 Strängen termineras av 0x00 (NUL) ASCII( h ) = 0x68 ASCII( e ) = 0x65 m u s f o d n a Etiketten ARRAY_OF_STRINGS har adress 0x ARRAY_OF_STRINGS + 4 5
6 Attans svårt att få grepp på det här problemet Det blir enklare att lösa problem om man delar upp dem i delproblem Äh kom igen nu! Vi kör med taktiken söndra och härska så skall ni se att det löser sig Vi vill även kunna skriva kod som går att återanvända på ett enkelt sätt Det är dags att lära oss skriva subrutiner subroutines Subrutiner tar alltid indata i $aregister, eller om de inte räcker till på stacken Jump Register data STR: asciiz "The sum is " Vi börjar alltid med att NL: asciiz "\n END: asciiz "The End\n" dokumentera våra subrutiner text DESCRIPTION: Given two number A and B, print out the sum of these numbers INPUT: $a0 - number A, $a1 - number B OUTPUT: $v0 - the sum of A and B sum: Must copy $a0(a) since the s used later needs $a0 add $t0, $a0, $zero Print "The sum is " la $a0, STR Print the sum of A and B Print Sum = A + B add $a0, $t0, $a1 Print "\n" la $a0, NL Return Sum add $v0, $zero, $a0 Subrutiner ger alltid utdata i $v-register, eller om de inte räcker till, på stacken Avslutar alltid med för att hoppa tillbaka till instruktionen direkt efter den anropande jal (Jump And Link) subroutines (main) Vi anropar sedan subrutinen med jal vilket kommer att sparar returadressen i Ytterligare ett anrop till subrutinen sum addi $a0, $zero, 3 addi $a1, $zero, 11 jal sum addi $a0, $zero, 7 addi $a2, $zero, 99 jal sum Print "The End" la $a0, END För att anropa en subrutin måste vi se till att ge korrekt indata i $a-registren Precis som det är en väldans dålig idé att försöka ta en tallrik i mitten av stapeln så vore det hemskt dumt om vi slarvade bort någon returadress innan vi behöver den När vi kör programmet får vi ett oändligt antal The End Dett beror på att innehåller adressen till instruktionen direkt efter den sista Jump And Link Det är därför vi använder oss av en stack En stack är en datastruktur som endast tillåter två operationer PUSH för att lägga något överst på stacken POP för att läsa och ta bort det som ligger överst på stacken 6
7 Stacken växer neråt: från höga adresser till låga Detta för att inte krocka med det övriga data-segmentet Till vår hjälp har vi det speciella registret $sp vars innehåll (adress) definierar toppen på stacken $sp PUSH register $t0 addi $sp, $sp, -4 sw $t0, 0($sp) POP value on top of stack to $t0 subroutines (main) För att det skall fungera måste vi spara undan returadressen, ett utmärkt ställe för detta är stacken Nu kan vi återställa genom att poppa tillbaka returadressen från stacken globl main Push return address addi $sp, $sp, -4 sw, 0($sp) addi $a0, $zero, 3 addi $a1, $zero, 11 jal sum addi $a0, $zero, 7 addi $a2, $zero, 99 jal sum Print "The End" la $a0, END lw $t0, 0($sp) addi $sp, $sp, 4 Pop return address lw, 0($sp) addi $sp, $sp, 4 När vi skriver subrutiner som i sin tur anropar andra subrutiner eller sig själv (rekursion) måste vi pusha och poppa returadressen på stacken Kom ihåg att detta gäller även för main som också är en subrutin som anropas av det lilla operativsystemet SPIM använder Frid och fröjd! För subrutiner som inte anropar någon subrutin, så kallde lövprocedurer, behöver vi inte spara returadressen på stacken Registerkonventionen Indata till subrutiner lagras i $a-register Om $a-registren inte räcker till tas övrig indata på stacken Utdata från subrutiner lagras i $v-register Om $v-registren inte räcker till ges övrig utdata på stacken subroutine_and_array_of_stringss data STR_a1: asciiz "The sum of " STR_a2: asciiz " and " STR_a3: asciiz " is " Två arrayer av strängar Tillfälliga värden lagras i $t-register STR_b1: asciiz "These two numbers " STR_b2: asciiz " and " STR_b3: asciiz " sum up to " NL: asciiz "\n" För sådant som man vill skall "överleva" anrop till subrutiner används $s-register Om en subrutin i sin tur behöver använda något $s-register måste värdet i detta register vara oförändrat efter återhopp till anroparen Ett bra sätt är att först pusha innhållet i registet på stacken, använda det, och sedan poppa tillbaka det gamla värdet Konvention: överenskommelse, en godtycklig men hävdvunnen eller allmänt erkänd ordning eller praxis som följs då inget särskilt talar där emot ARRAY_a: ["The sum of ", " and ", " is "] word STR_a1, STR_a2, STR_a3 ARRAY_b: ["These two numbers ", " and ", " sum up to "] word STR_b1, STR_b2, STR_b3 7
8 subroutine_and_array_of_stringss DESCRIPTION: Given two number A and B, print out the sum of these numbers INPUT: $a0 - Address to an array of three strings $a1 - a number A $a2 - a number B EXAMPLE: $a0 = ["The sum of ", " and ", " is "] $a1 = 3 $a2 = 15 This will result in the following being printed on the console: "The sum of 3 and 15 is 18" print_sum: subroutine_and_array_of_stringss (main) addi $sp, $sp, -4 Push return address sw, 0($sp) la $a0, ARRAY_a addi $a1, $zero, 3 addi $a2, $zero, 11 jal print_sum la $a0, ARRAY_b addi $a1, $zero, 7 addi $a2, $zero, 99 jal print_sum lw, 0($sp) Pop return address addi $sp, $sp, 4 subroutine_and_array_of_stringss DESCRIPTION: Given two number A and B, print out the sum of these numbers INPUT: $a0 - Address to an array of three strings $a1 - a number A $a2 - a number B EXAMPLE: $a0 = ["The sum of ", " and ", " is "] $a1 = 3 $a2 = 15 This will result in the following being printed on the console: "The sum of 3 and 15 is 18" print_sum:? Del av inlämningsuppgift? Här väljer vi ett input element Här kan vi ändra hur många bitar vi vill ha I detta fall vill vi ha 8 bitar Här väljer vi verktyget för att dra ledningar För att dela upp ledningen i 8 stycken, dvs en per bit använder vi en splitter Vi måste ange hur många bitar som kommer in, i detta fall 8 För att det skall funka måste vi även sätta Fan Out till minst 8 The fanout is simply the number of inputs that can be connected to an output before the current required by the inputs exceeds the current that can be delivered by the output while still maintaining correct logic levels 8
9 Under Project kan vi lägga till kretsar (Add Circuit) Vi lägger till en som vi döper till xor Konstuerar funktionen XOR med hjälp av AND-, OR- och NOT grindar Nu kan vi dra ledningar och koppla in output element på vanligt sätt Genom att dubbelklicka på main kommer vi tillbaka till vår första krets Logisim kommer med olika färdiga kretsar, bland annat en 32-bits adderare Om vi klickar en gång på xor kan vi nu lägga till denna krets som en komponent i main Bara att testa! Först gör ni en 1-bits adderare I dag har vi lärt oss hantera strängar i MIPS och SPIM Vi har även lärt oss mer om little- och big endian som ni använder för att bygga en 8- bits adderare som ni använder för bygga den slutliga 32-bits adderaren En 32-bits adderare som ni bygger sjäva i Logisim En sträng är alltså inget annat än en array av bytes med ASCII-värden Hur arrayer fungerar har vi oxå kollat på I MIPS kan vi nu skriva loopar, if-satser och subrutiner Till och med arrayer av strängar har vi kikat på 9
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 merLö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 merDigitalteknik och Datorarkitektur 5hp
Foto: Rona Proudfoot (some rights reserved) Vi skall nu kolla närmare på hur det går till när en instruktion utförs. Fetch = + Digitalteknik och Datorarkitektur hp path & Control maj 2 karl.marklund@it.uu.se
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 merDatorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga
Datorarkitektur I Tentamen Lördag 10 April 2010 Ekonomikum, B:154, klockan 09:00 14:00 Examinator: Karl Marklund 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel: Penna Radergummi Linjal Följande
Läs merFoto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December
Datorarkitektur Datapath & Control December 28 karl.marklund@it.uu.se Foto: Rona Proudfoot (some rights reserved) Vi skall nu kolla närmare på hur det går till när en instruktion utförs. Fetch PC = PC+4
Läs merNUV 647E. Digitalteknik och Datorarkitektur 5hp. 3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18
Digital kommer från latinets digitus som betyder "finger" eller "tå" (jfr engelskans digit). Uttrycket kommer från den gamla seden att räkna på fingrarna, och avslöjar att det rör sig om räkning med diskreta
Läs merInstitutionen 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 merDatorteknik. 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 merMå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 merDigitalteknik och Datorarkitektur
Digitalteknik och Datorarkitektur Tentamen Tisdag 12 Januari 2010 Pollacksbackens skrivsal, klockan 08:00 13:00 Examinator: Karl Marklund 018 471 10 49 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel:
Läs merLö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 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 merExtra 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 merInstitutionen 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 merDatorteknik. 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 merLö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 merMå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 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 merDatorsystemteknik 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 merKontrollskrivning 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 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 merTenta 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 merStyrteknik: Binära tal, talsystem och koder D3:1
Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder
Läs merDatorteknik. 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 merTentamen. 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 merDet finns en handledning till kortet på hemsidan. AVR STK500.
Laboration 1 (ver 1) Uppgifter: AVR Studio 4.lnk Bli bekant med utvecklingskortet, och AVR studio. Skriva in program för binärräknare. Simulera detta samt ladda ner det till kortet. Förse ovanstående program
Läs merOBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!
Sid 1 av 8 Datavetenskap Tentamen för DVG A03 Datorsystemteknik, 7,5 hp, del 2 fredag 2009-01-09 kl. 08.15-13.15 Tentamen del 2 består av 4 sidor. Ansvariga lärare: Tillåtna hjälpmedel: Kerstin Andersson
Läs merDataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte
CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.
Läs merOmtentamen 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 merF4: 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 merDatorsystemteknik DVGA03 Föreläsning 5
Datorsystemteknik DVGA03 Föreläsning 5 Stack och subrutiner Programmeringskonventionen Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Registren i MIPS
Läs merLå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 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 merTentamen. 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 merPer 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 merTentamen. 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 merGrundlä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 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 merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C
Läs merTentamen. 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 merLösningsförslag till Tenta i Mikrodator
Lösningsförslag till Tenta i Mikrodator 040117 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 merDatorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling mer kraftfull Dessa programmeringsspråk (Ada, C++, Java)
Läs merCE_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 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 merElektroteknik 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 merTSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2018-01-16 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Mail kommer skickas ut när labanmälan är möjlig
Läs merDigital- 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 merCE_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 merProgramräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.
F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren
Läs merHantering av textsträngar och talsträngar. William Sandqvist
Hantering av textsträngar och talsträngar Strängen Hello world! PIC-processorerna lagrar strängkonstanter med bokstäverna inbakade i en följd av instruktioner (en tabell). Man hämtar en bokstav genom att
Läs merTSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2019-01-22 3 TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY Praktiska kommentarer Labanmälan öppnar måndag 28/1 kl 12.30 Anmälningssystemet
Läs merGeneral 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Ö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 merProgram kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar
1 Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram:
Läs merInstitutionen 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 merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merDigital- 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 merSystem S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet
Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera
Läs merGU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167
GU / Chalmers Campus Lindholmen Tentamen Programutveckling 2016-01-13 LEU 482 / TIG167 Examinator: Henrik Sandklef (0700-909363) Tid för tentamen: 2016-01-13, 08.30 12.30 Ansvarig lärare: Henrik Sandklef,
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 merTentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621
Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är
Läs merDatorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI
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 merTSEA28 Datorteknik Y (och U)
TSEA28 Datorteknik Y (och U) Föreläsning 2 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 2, Kent Palmkvist 2017-01-17 2 Dagens föreläsning Kort repetition Större programmeringsexempel Subrutiner
Läs merGrundkurs Programmering
HI124 Grundkurs Programmering F7b: Funktioner på djupet! A. Cajander, STH 6 1 5 42 3.14f a float char short circuit order of subexp eval. Dagens fokus = + - * / % ++ -- + - * / % & ^ > ==!= > < >=
Läs merInledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Läs merTentamen. 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 merSekventiella krestar (minne)
Sekventiella krestar (minne) Datorarkitektur 1 (1DT038) Föreläsning 6 Tisdag 16 November 2009 karl.marklund@it.uu.se 4 Minterms The majority function A B C M 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 The
Läs merDatorsystemteknikDAVA14 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 merDatorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Översikt Processorn Maskininstruktioner Dator Primärminne Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction
Läs merOutline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler
Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa
Läs merTentamen. 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 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 merDatorsystem 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 merTentamen (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 merFö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 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 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 merLaboration 2 i Datorteknik- Assemblerprogrammering II
Högskolan i Halmstad 1 (8) - Assemblerprogrammering II Målet med laborationen är att få begrepp om Subrutiner. in/utparametrar. Lokala variabler Maska in bitar till ett register Konstruktion av subrutiner
Läs merÖ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 merF2: 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 merTentamen 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 merAtt skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Läs merTentamen. 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 merPC-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 merDatorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.
Datorteknik Tomas Nordström Föreläsning 6 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 6 Vad händer vid uppstart SoC och Kringkretsar, PIO Programmering i Assembler Lab2 genomgång
Läs merTentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60
Läs merBeijer Electronics AB 2000, MA00336A, 2000-12
Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this
Läs merPARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll
PARALLELL OCH SEKVENTIELL DATABEHANDLING Innehåll Parallellism i VHDL Delta delays och Simuleringstid VHDLs simuleringscykel Aktivering av Processer Parallella och sekventiella uttryck 1 Controller PARALLELLISM
Läs merReducerad INSTRUKTIONSLISTA för FLIS-processorn
Reducerad INSTRUKTIONSLI för FLIS-processorn 2013-11-08 2(10) Innehåll Sidan 3 Programmerarens bild av FLIS-processorn 4 Förklaring av beteckningar i instruktionslistan 5 Enkel dataflyttning 5 Logik 5
Läs merÖvning 1 - Abstrakta datatyper
/home/lindahlm/activity-phd/teaching/12dd1320/exercise1/exercise1.py September 3, 20121 0 # coding : latin Övning 1 - Abstrakta datatyper 18 Summering Vi gick igenom betydelsen av abstrakta datatyper/datastrukturer.
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Läs merTentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Läs merStyrenheten 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 merDatorsystemteknik 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 merLäs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL!
MCU LABORATION5 Laborationens syfte Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL! I denna laboration ska en enkel MCU (Micro-Controller_Unit) konstrueras. En MCU,
Läs merStyrteknik : Funktioner och funktionsblock
PLC2A:1 Variabler och datatyper Allmänt om funktioner och funktionsblock Programmering av funktioner Programmering av funktionsblock PLC2A:2 Variabler i GX IEC Developer Global and Local Variables Variables
Läs mer