Hvordan en prosessor arbeider, del 1

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "Hvordan en prosessor arbeider, del 1"

Transkript

1 Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet

2 Internett Lokalnett (LAN) Mitt program Programtolker (python, java,...) Operativsystemet Prosessoren (CPU-en) Logiske porter (AND, OR, XOR,...) Transistorer

3 Hva bør du kunne etter dagens forelesning? Jeg forventer at dere kan 1 lese enkle x64-funksjoner og forstå hva de gjør. 2 kunne skrive x64-instruksjoner som løser et enkelt regnestykke med heltall. Ukeoppgavene er gode eksempler på hva jeg forventer nå og til eksamen.

4 En interpret Hvordan kjøre et program Dere kan skrive programmer i et programmeringsspråk som Python. Program i Python if 2*area() > max: Python-interpret python3 Det blir tolket av en interpret. Men hvordan lager man en interpret?

5 En kompilator En annen måte å kjøre et program på Program i C if (a==0) a++; Andre programgrammeringsspråk som C og C++ oversetter i stedet programmet til maskinkode. Kompilator gcc Maskinkode Maskinkode kan utføres av CPU-en i en datamaskin.

6 En kompilator Slik får man laget en interpret Takket være en interpret skrevet i C kan man utføre programmer skrevet i Python. Program i Python if 2*area() > max: while (*p) { Python-interpret i C Python-interpret python3 gcc

7 Hva er så maskinkode? Et enkelt eksempel I Python kan vi skrive funksjonen nineteen som gir verdien 19 som resultat: def nineteen(): return 19 nineteen.py print("nineteen()", "=", nineteen())

8 Hva er så maskinkode? Maskinkoden for funksjonen nineteen er 0x48 0xC7 0xC0 0x13 0x00 0x00 0x00 0xC3 Hvordan kan man lage slik kode? Assemblerkode Assemblerkode er huskekoder for instruksjonene, så vi skriver heller funksjonen vår slik: movq $19,%rax # Hent 19. ret (Tegnet # angir en kommentar.)

9 x64 Intel x64 Vår eksempel-cpu kjører x64 og er laget av Intel og AMD. Den finnes i de aller fleste personlige datamaskiner i dag.

10 x64 Von Neumann-maskinen CPU CPU ALU Registre inndata utdata inndata utdata Minne prosessor Minne prosessor

11 Registrene Registre Inne i CPUen ligger noen få spesielle variabler kalt registre. De består alle av 8 byte (64 bit). Vi skal bruke 9 av dem: Navn Bruk %RAX «Accumulator», dvs svar %RCX «Counter» %RDX «Data» %RDI «Destination index» %RSI «Source index» %R8 alt mulig %R9 alt mulig %R10 alt mulig %R11 alt mulig

12 Det viktigste er å flytte ting! Instruksjoner Den aller viktigste instruksjonen heter movq og den kopierer data. Den kan kopiere en fast verdi (angitt med $ foran) til et register innholdet av ett register til et annet Eksempler movq $4,%RAX # Kopier verdien 4 til register %RAX movq %RDX,%R8 # Kopier innholdet av register %RDX til %R8

13 Resultatet; hvor skal det? Funksjonens svar Målet med en funksjon er å beregne et svar som skal ligge i %RAX-registeret. Funksjonen nineteen Vår funksjon nineteen finner da svaret slik: movq $19,%rax # Hent 19. Retur Når svaret er klart, kan funksjonen returnere ved å bruke instruksjonen ret: ret

14 Navnet på funksjonen Funksjonens navn Nå kan vi gi funksjonen vår navnet sitt. Til dette trenger vi to linjer:.globl nineteen: nineteen

15 Den ferdige funksjonen Funksjonen nineteen komplett Da har vi den komplette filen nineteen.s: nineteen.s # def nineteen(): Hent verdien 19..globl nineteen nineteen: movq $19,%rax # Hent 19. ret (Filer med assemblerkode skal slutte med.s på samme måte som Python-filer skal slutte på.py.) I assemblerkode er alle linjer unntatt navn: rykket inn.

16 Vi må teste funksjonen Testing av funksjonen Til å teste funksjonen vår trenger vi et lite C-program: #include <stdio.h> extern long nineteen (); test-nineteen.c int main (void) { long res = nineteen(); printf("nineteen() = %d\n", res); } (Dere skal slippe å skrive slike C-programmer; de vil dere alltid få utlevert helt ferdig.)

17 Vi må teste funksjonen Kjøring av testprogrammet Testprogrammet koples sammen med funksjonen vår og kjøres etter denne oppskriften: $ gcc -o test-nineteen test-nineteen.c nineteen.s $./test-nineteen nineteen() = 19 ($-tegnet i eksemplene brukes for å angi at linjen er en kommando som brukeren gir.)

18 Enkel regning Noen flere instruksjoner I tillegg til instruksjonene movq Flytt en verdi ret Returner fra en funksjon har vi noen instruksjoner for regning: addq Legg til en verdi subq imulq negq Trekk fra en verdi Multipliser med en verdi Skift fortegn på en verdi

19 Alle skikkelige funksjoner har parametre Parametre Funksjoner kan ha parametre, dvs verdier som brukes som grunnlag for beregningen. I assemblerkode ligger parametrene i disse registrene når funksjonen vår blir kalt: %RDI %RSI %RDX 1. parameter 2. parameter 3. parameter NB! Dette gjelder for Linux. Andre systemer, som Windows, har andre regler.

20 Alle skikkelige funksjoner har parametre Et eksempel Vi skal lage en funksjon som dobler en verdi. I Python ville vi skrevet: def doble (v): return v + v print("doble(88)", =, doble(88)) I assemblerkode skriver vi doble.s # def doble(v): Beregn den doble verdien av v. doble:.globl doble movq %rdi,%rax # Hent v addq %rdi,%rax # og legg til v. ret

21 Alle skikkelige funksjoner har parametre Et testprogram kan se slik ut: #include <stdio.h> extern long doble (long v); test-doble.c int main (void) { long res = doble(17); printf("doble(17) = %d\n", res); } Resultatet av kjøringen blir $ gcc -o test-doble test-doble.c doble.s $./test-doble doble(17) = 34

22 Divisjon Divisjon Divisjon er litt sær, men følgende oppskrift fungerer: 1 Legg dividend (den verdien vi skal dele) i %RAX. 2 Legg divisor (den verdien vi skal dele på) i ett av registrene %R8, %R9, %R10 eller %R11. 3 Utfør de to instruksjonene cqo idivq %rn 4 Da kommer svaret i %RAX og resten fra divisjonen i %RDX.

23 Divisjon Et eksempel Skriv en funksjon som beregner a b c. f.s # def f(a, b, c): Beregn a * b / c f:.globl f movq %rdi,%rax # Hent a og imulq %rsi,%rax # gang med b movq %rdx,%r8 # Hent c og cqo # idivq %r8 ret # del a*b med c.

24 Divisjon Testprogrammet ser slik ut: #include <stdio.h> test-f.c extern long f (long a, long b, long c); int main (void) { long res = f(171, 211, 10); printf("f(171,211,10) = %d\n", res); } Resultatet av kjøringen blir $ gcc -o test-f test-f.c f.s $./test-f f(171,211,10) = 3608

25 For de som syntes dette var interessant Mer å lese Randal E Bryant & David R O Hallaron: Computer systems a programmer s perspective, 3rd edition. Pearson introduction-to-x64-assembly er en kort introduksjon til x64 fra Intel pdf er den fulle spesifikasjonen av x sider!

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange

Detaljer

En oppsummering (og litt som står igjen)

En oppsummering (og litt som står igjen) En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de

Detaljer

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene

Detaljer

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800-tallet

Detaljer

Dagens tema: Enda mer MIPS maskinkode

Dagens tema: Enda mer MIPS maskinkode Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Informasjon Prøveeksamen IN1020 høsten 2017

Informasjon Prøveeksamen IN1020 høsten 2017 Informasjon Prøveeksamen IN1020 høsten 2017 Dette er en prøveeksamen i emnet IN1020. Den er laget både for å demonstrere hvordan den ekte eksamen vil arte seg, og for å vise hva slags spørsmål man kan

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

Velkommen. Velkommen til INF2270. Datamaskinarkitektur. Motto: Datamaskinen på tvers

Velkommen. Velkommen til INF2270. Datamaskinarkitektur. Motto: Datamaskinen på tvers Velkommen Velkommen til INF2270 Datamaskinarkitektur Motto: Datamaskinen på tvers Forelesere Forelesere Omid Mirmotahari (omidmi@ifi.uio.no) fra Studielaben, men opprinnelig fra Nanoelektronikk. Dag Langmyhr

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005

Detaljer

INF2270 Datamaskinarkitektur

INF2270 Datamaskinarkitektur Velkommen Velkommen til INF2270 Datamaskinarkitektur Motto: Datamaskinen på tvers Forelesere Forelesere Omid Mirmotahari (omidmi@ifi.uio.no) fra Studielaben, men opprinnelig fra Nanoelektronikk. Dag Langmyhr

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Programmeringsspråket C Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard i 1988;

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Programmeringsspråket C Laget til implementasjon av Unix ved AT&Ts Bell labs i Palo Alto 1969 73. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard

Detaljer

Dagens tema INF1070. Makroer. Sanntidsprogrammering. Avbrudd. Bruker- og supermodus. Blanding av C og assemblerkode. Selvmodifiserende kode

Dagens tema INF1070. Makroer. Sanntidsprogrammering. Avbrudd. Bruker- og supermodus. Blanding av C og assemblerkode. Selvmodifiserende kode Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 2. mai 2005 Ark 1 av 20 Makroer Ofte gjentar

Detaljer

Dagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler

Dagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler Dagens tema Dagens tema: Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler Charles Babbage Datamaskinenes historie Menneskene har alltid prøvd

Detaljer

Dagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro:

Dagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro: Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2270 Datamaskinarkitektur Eksamensdag: 11. juni 2009 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 10 sider. Vedlegg: Ingen

Detaljer

Generell informasjon

Generell informasjon Introduksjon Oppgave Tittel Oppgavetype Generell informasjon Dokument 1.1 Kompendiet Langsvar Arkitektur Oppgave Tittel Oppgavetype 2.1 Pipeline Flervalg (flere svar) 2.2 Boolsk Algebra Flervalg (flere

Detaljer

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner Dagens tema Dagens tema Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Rasko-kode Raskas-kode Dagens tema En overikt RusC-program x = x+1; ADD R1,R2,R1 Raskas-kode Kompilator rusc

Detaljer

Tema for siste forelesning:

Tema for siste forelesning: Dagens tema Tema for siste forelesning: Kodegenerering Funksjoner Testing Ulike testprogrammer Kompilering av programsystemer make ant Hva må gjøres for funksjoner? Funksjoner For funksjoner må vi kunne

Detaljer

Velkommen til INF2100 Jeg er Dag Langmyhr

Velkommen til INF2100 Jeg er Dag Langmyhr Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva

Detaljer

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Dagens tema Charles Babbage Datamaskinenes historie maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner kode kode Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU) 2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 10 sider. Vedlegg: Tillatte hjelpemidler: INF2270

Detaljer

En oppsummering. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen. Programmeringsoppgaver Flervalgsoppgaver

En oppsummering. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen. Programmeringsoppgaver Flervalgsoppgaver En oppsummering Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen Programmeringsoppgaver Flervalgsoppgaver Pensum Pensum Læreboken Forelesningene De obligatoriske oppgavene Ukeoppgavene

Detaljer

Vektorer. Dagens tema. Deklarasjon. Bruk

Vektorer. Dagens tema. Deklarasjon. Bruk Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe

Detaljer

Programmeringsspråket C Del 2. Michael Welzl

Programmeringsspråket C Del 2. Michael Welzl Programmeringsspråket C Del 2 Michael Welzl 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det nedover til 0 $> gcc countdown.c -o countdown $>./countdown ===== Countdown

Detaljer

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering Dagens tema Vektorer (array er) Tekster (string er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 23. januar 2006 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema: Tallsystemer (P&H: 4.1 4.2) Generelt Binære, oktale og heksadesimale tall Tall, bit og byte Negative tall Assemblerspråk (P&H: 3.1 3.3 + A.9) Datamaskinens oppbygging Enkel aritmetikk Flytting

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2007 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 9 sider. Vedlegg: INF1070 og INF2270 Datamaskinarkitektur

Detaljer

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator? Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk

Detaljer

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt Dagens tema Mer MIPS maskinkode (P&H: 4.4 + 3.6 + 3.3 + A.6 + A.10) Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt Ark 1 av 16 Forelesning

Detaljer

INF2270 Datamaskinarkitektur

INF2270 Datamaskinarkitektur Velkommen Velkommen til INF2270 Datamaskinarkitektur Motto: Hvordan bygger man en datamaskin? Dagen i dag Første time Introduksjon til kurset Hva handler kurset om? Forelesere Pensum Kursopplegg I pausen

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

Detaljer

Dagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25

Dagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.

Detaljer

Velkommen til INF2100

Velkommen til INF2100 Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering

Detaljer

Tema for siste forelesning:

Tema for siste forelesning: Tema for siste forelesning: Kompilering av programsystemer make ant Kodegenerering Funksjoner Testing Ulike testprogrammer Hvordan kompilere riktig? Programmet make Det er mange praktiske problemer forbundet

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Dagens forelesing Kapittel 1 Datamaskinsystem Kapittel 2 start 3 Gunnar Fakta Datamaskingruppa Biologisk inspirerte system: Unconvential Computing Machines

Detaljer

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt. Seksjon 1 INF2270-V16 Forside Eksamen INF2270 Dato 1. juni 2016 Tid 14.30-18.30 Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt. Dette oppgavesettet består av 14 oppgaver som kan løses

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Cs preprosessor. Dagens tema. Betinget kompilering

Cs preprosessor. Dagens tema. Betinget kompilering Dagens tema Dagens tema Inkludering av filer Cs preprosessor Cs preprosessor Separat kompilering av C funksjoner C og minnet Før selve kompileringen går C kompilatoren gjennom koden med en preprosessor

Detaljer

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner og array-er.) Prosjektoversikt

Detaljer

Oversikt Kodegenerering Variabler Setninger Uttrykk While-setningen

Oversikt Kodegenerering Variabler Setninger Uttrykk While-setningen Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variabler Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del 0

Detaljer

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Dagens program Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Nyttige forklaringer Sikker opprettelse av nye prosesser Hva

Detaljer

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 22.08.12 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Tor Skeie

Detaljer

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgaver uke 35: Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgave 1. Skriv et C-program som leser mål i tommer og skriver det ut i fot og tommer. (Det er 12 tommer

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

IN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare

IN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare Velkommen til IN 147 Program- og maskinvare Dagens tema: Presentasjon av kurset Litt om programmeringsspråket C Registrering av oppmøte Ark 1 av 22 Forelesning 22.1.2001 Foreleserne Sigbjørn Næss Digitaltekniker

Detaljer

INF-103. Velkommen til. Første time. Fra brukergrensesnitt til maskinvare. eller Datamaskinen på tvers. Andre time

INF-103. Velkommen til. Første time. Fra brukergrensesnitt til maskinvare. eller Datamaskinen på tvers. Andre time Velkommen til INF-103 Fra brukergrensesnitt til maskinvare eller Datamaskinen på tvers Motto: Hva er det egentlig som skjer? Første time Introduksjon til kurset Hva handler kurset om? Forelesere Pensum

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

INF-103 Fra brukergrensesnitt til maskinvare

INF-103 Fra brukergrensesnitt til maskinvare Velkommen til INF-103 Fra brukergrensesnitt til maskinvare eller Datamaskinen på tvers Motto: Hva er det egentlig som skjer? Ark 1 av 23 Første time Introduksjon til kurset Hva handler kurset om? Forelesere

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: Eksamensdag: 12. juni 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 11 sider. Vedlegg: Tillatte hjelpemidler: INF2270

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 3 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære om hvordan

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk ( Kjøresystemer Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Statiske språk (2.7.1-2.7.2) FORTRAN, COBOL Stakk-baserte språk (2.7.3-2.7.4) ALGOL 60 Dynamiske språk

Detaljer

Velkommen til INF1060. Introduksjon til operativsystemer og datakommunikasjon

Velkommen til INF1060. Introduksjon til operativsystemer og datakommunikasjon Velkommen til INF1060 Introduksjon til operativsystemer og datakommunikasjon 1 Forelesere Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Tor Skeie (tskeie@ifi.uio.no)

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

Dagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070

Dagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070 Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.

Detaljer

Dagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall

Dagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall Dagens tema Datamaskinen LC-2 En kort repetisjon Binære tall Litt om tallsystemer generelt Binære tall Heksadesimale og oktale tall Programmering av LC-2 Maskinkode Assemblerkode Kjøring av LC-2-programmer

Detaljer

Løsningsforslag til eksamen i INF2270

Løsningsforslag til eksamen i INF2270 Løsningsforslag til eksamen i INF227 Oppgave 9 Omid Mirmotahari Oppgave 6 Dag Langmyhr. juni 24 Eksamen INF227 Sensorveiledning Oppgave 2 Kretsforenkling Hva er funksjonsuttrykket for Output gitt av A

Detaljer

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Dagens temaer Fra kapittel 4 i Computer Organisation and Architecture Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Register Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

Dagens tema: Kjøresystemer II

Dagens tema: Kjøresystemer II Dagens tema Kjøresystemer II En kort repetisjon (Ghezzi&Jazayeri 2.7.3) Språk med blokker (Ghezzi&Jazayeri 2.7.4) Dynamisk allokering (Ghezzi&Jazayeri 2.7.5) Parametre (Ghezzi&Jazayeri 2.7.7) Ark 1 av

Detaljer

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

EKSAMEN. Operativsystemer. 1. Læreboken A Practical Guide to Red Hat Linux av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater. EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre

Detaljer

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Variable og beregninger, input og utskrift TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål for denne uka: Vite litt om design av programmer (2.1, 2.2, 2.4) Kunne skrive ut

Detaljer

Dagens tema C, adresser og pekere

Dagens tema C, adresser og pekere Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Ark 1 av 26 Adresser Som nevnt tidligere ligger

Detaljer

Datamaskinens virkemåte

Datamaskinens virkemåte Geir Ove Rosvold 6. januar 26 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: I denne leksjonen ser vi på den grunnleggende virkemåten til en datamaskin. Vi ser på de forskjellige delene - blant annet

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del-0

Detaljer

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) (repetisjon fra forelesningene)

Detaljer

Løsningsforslag til eksamen 24. november 2015

Løsningsforslag til eksamen 24. november 2015 Operativsystemer med Linux Løsningsforslag til eksamen 24. november 2015 Oppgave 1 a) Et OS deler tiden inn i små deler, typisk et hundredels sekund, og fordeler slike korte timeslices til alle prossene

Detaljer

Forelesning 5. Diverse komponenter/større system

Forelesning 5. Diverse komponenter/større system Forelesning 5 Diverse komponenter/større system Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2 Komparator Komparator sammenligner to 4 bits tall

Detaljer

Datamaskinens oppbygning

Datamaskinens oppbygning Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning 9: Instruksjonsettarkitektur 3 Knut H. Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and

Detaljer

Dagens tema. Oppsummering om assemblerspråk. Programmering i C. Bakgrunn. Et minimalt eksempel med forklaring. Datatyper i C.

Dagens tema. Oppsummering om assemblerspråk. Programmering i C. Bakgrunn. Et minimalt eksempel med forklaring. Datatyper i C. Dagens tema Oppsummering om assemblerspråk Programmering i C (kapittel 11 og 12 i Patt&Patel-boken) Bakgrunn Et minimalt eksempel med forklaring Datatyper i C Operatorer i C Et eksempel til med forklaring

Detaljer

Velkommen til INF2100. Bakgrunnen for INF2100. Hva gjør en kompilator? Prosjektet. Jeg er Dag Langmyhr

Velkommen til INF2100. Bakgrunnen for INF2100. Hva gjør en kompilator? Prosjektet. Jeg er Dag Langmyhr Kursopplegg Velkommen til INF2100 en en for INF2100 Jeg er (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering

Detaljer

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Ark 1 av 31 Hva er en rutine?

Detaljer

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon: EKSAMENSOPPGAVE Eksamen i: INF-1100 Innføring i programmering og datamaskiners virkemåte Dato: Tirsdag 8. desember 2015 Tid: Kl 09:00 13:00 Sted: Teorifagbygget, Hus 1 Tillatte hjelpemidler: Ingen Oppgavesettet

Detaljer

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Dagens tema Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Formål: Nyttige å bruke under programmeringen Trening i programmering i C

Detaljer

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM) Dagems temaer Fra Kort Organisering Register kapittel 4 i Computer Organisation and Architecture om hurtigminne (RAM) av CPU: von Neuman-modellen Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer