TKT-3201 Tietokonearkkitehtuuri 2
|
|
- Karoliina Alanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 TKT-3201 Tietokonearkkitehtuuri 2 Luku 2: Käskyt: Tietokoneen kieli Tietokonetekniikka
2 #2 Käskykanta Käytettävissä olevien käskyjen joukko Erilaisilla prosesoreilla erilainen käskykanta Mutta paljon yhteisiä piirteitä Ensimmäisissä tietokoneissa yksinkertainen käskykanta Yksinkertainen toteutus Monissa nykyaikaisissa tietokoneissa on myös yksinkertainen käskykanta Kirjassa käsitellään MIPS-prosessoria Stanford MIPS, jonka kaupallistanut MIPS Technologies ( Esimerkki tyypillisestä modernista käskykannasta
3 Aritmeettiset operaatiot Summaus, vähennys, kolme operandia Kaksi lähdettä, yksi kohde add a, b, c # a sijoitetaan b + c kaikilla aritmeettisilla operaatiolla on tämä muoto Sunnitteluperiaate 1: yksinkertaisuus suosii säännöllisyyttä Säännöllisyys yksinkertaistaa toteutusta Yleensä yksinkertainen ratkaisu tarjoaa korkeamman suorituskyvyn pienemmällä kustannuksella #3
4 Aritmetiikka, esimerkki C -koodi: f = (g + h) - (i + j); käännetty MIPS -koodi: add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 #4
5 Rekisterioperandit Aritmetiikkakäskyt käyttävät rekisterioperandeja MIPS:ssä bit rekisteritiedosto (register file) Käytetään usein tarvittavan datan säilytykseen Rekisterit numeroitu bit data: word Assemblerin nimeämiskäytäntö $t0, $t1,, $t9 : väliaikaismuuttujat $s0, $s1,, $s7 : talletetut muuttujat Suunnitteluperiaate 2: pienempi on nopeampi vrt. päämuisti: miljoonia muistipaikkoja #5
6 Registerioperandi, esimerkki C -koodi: f = (g + h) - (i + j); Muuttujat f,, j rekistereissä $s0,, $s4 käännetty MIPS -koodi: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 #6
7 Muistioperandit päämuistia käytetään yhdistelmädatalle taulukot, rakenteet, dynaaminen data aritmetiikkaoperaatio Lataa operandit muistista rekisteriin Tallenna tulos rekisteristä muistiin muisti tavu-osoitettu Yksi osoite identifioi 8-bitisen tavun 32-bittiset sanat järjestetty muistiin Sanan osoite on 4:n monikerta #7
8 Tavujärjestys (Endianness) Ilmaisee missä järjestyksessä tietokone käsittelee suurempia kuin yhden tavun kokonaisuuksia osoite data Big Endian eniten merkitsevät tavut tallentuvat alempiin osoitteisiin MIPS, Internetin dataliikenne Little Endian vähiten merkitsevät tavut tallentuvat alempiin osoitteisiin Intelin prosessorit 4N+3 4N+2 b 15 b b 8 4N+1 4N+0 osoite 4N+3 4N+2 4N+1 4N+0 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 b 23 b b 16 b 31 b b 24 data b 31 b b 24 b 23 b b 16 b 15 b b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 #8
9 Muistioperandi, esimerkki 1 C -koodi: g = h + A[8]; g rekisterissä $s1, h rekisterissä $s2, A:n kantasosoite rekisteri $s3 käännetty MIPS -koodi: Indeksi 8 vaatii poikkeaman (offset) 32 4 tavua per sana lw $t0, 32($s3) add $s1, $s2, $t0 # load word offset Kantaosoitteen rekisteri #9
10 Muistioperandi, esimerkki 2 C -koodi: A[12] = h + A[8]; h rekisterissä $s2, A:n kantaosoite rekisterissä $s3 käännetty MIPS -koodi: Indeksi 8 vaatii poikkeaman 32 lw $t0, 32($s3) # load word add $t0, $s2, $t0 sw $t0, 48($s3) # store word #10
11 Rekisterit / muisti Rekisteriviittaus nopeampi kuin muistiviittaus Muistissa olevan datan operointi vaatii latauksen ja tallennuksen Useampia käskyjä suoritettavana Kääntäjä käyttää mahdollisimman usein rekistereitä muuttujien tallentamiseen Muistiin talletetaan harvemmin viitattavat muuttujat Rekisterioptimointi yksi tärkeimmistä optimoinneista #11
12 Välitön osoitus (Immediate) Käskysanassa oleva vakio addi $s3, $s3, 4 Ei vähennyskäskya välittömällä osoituksella Summaus negatiivisella vakiolla addi $s2, $s1, -1 Suunnitteluperiaate 3: yleisimmät tapaukset tehdään nopeiksi Pieniä vakioita käsitellään usein Välittömällä osoituksella vältetään latauskäsky #12
13 Vakio nolla MIPS:n rekisteri 0 ($zero) vakio 0 Rekisterin sisältöä ei voi muuttaa Käytännöllinen useissa toimenpiteissä Esim. sijoita arvo rekisteristä toiseen add $t2, $s1, $zero #13
14 Etumerkittömät kokonaisluvut (unsigned integers) n-bittinen kokonaisluku lukualue: [0, +2 n 1] Esim = = = bittiset kokonaisluvut 0 +4,294,967,295 #14
15 Kahden komplementtiluvut (2s-Complement) n-bittinen kahden komplementtiluku lukualua: [ 2 n 1, +2 n 1 1] Esim = = 2,147,483, ,147,483,644 = bittinen luku 2,147,483,648 +2,147,483,647 #15
16 Kahden komplementtiluvut Eniten merkitsevä bitti on (Bit 31) etumerkkibitti 1 negatiivisille luvuille 0 ei-negatiivisille luvuille ( 2 n 1 ) ei ole esitettävissä Ei-negatiivisilla luvuilla on sama etumerkitön ja kahden komplementti -esitys Muutamia erityislukuja 0: : Pienin negatiivinen luku: Suurin positiivinen luku: #16
17 Etumerkin vaihto (Signed Negation) komplementoi ja summaa 1 Komplementti: 1 0, 0 1 x + x = = 1 x + 1= x Esim: negaatio = = = #17
18 Etumerkin laajennus (Sign Extension) Luvun esittäminen suuremmalla bittimäärällä Säilytetään numeerinen arvo MIPS:n käskykannassa addi: laajenna välittömän vakion etumerkkibitit lb, lh: laajenna ladatun tavun/puolisanan etumerkki beq, bne: laajenna siirtymän etumerkki Kopioidaan etumerkkibittiä vasemmalle Etumerkittömät luvut: lisätään etunollia Esim: 8-bittinen luku 16-bittiseksi +2: => : => #18
19 Käskyjen esitys Käskyt enkoodataan binäärisanoiksi konekoodi MIPS -käskyt Enkoodataan 32-bittisiksi käskysanoiksi Pieni määrä formaatteja, joiden mukaan enkoodataan operaatiokoodi (opcode), rekisterinumero, säännöllisyys! Rekisterinumerot $t0 $t7 : rekisterit 8 15 $t8 $t9 : rekisterit $s0 $s7 : rekisterit #19
20 MIPS R-formaatin käsky käskykentät op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op: operaatiokoodi (opcode) rs: ensimmäisen lähderekisterin numero rt: toisen lähderekisterin numero rd: kohderekisterin numero shamt: siirtojen lukumäärä (toistaiseksi 00000) funct: funktiokoodi (laajentaa opcodea) #20
21 R-formaatti, esimerkki op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits add $t0, $s1, $s2 special $s1 $s2 $t0 0 add = #21
22 Hexadesimaaliluvut 16-kantainen esitys (Base 16) Kompakti esitystapa bittijonoille 4 bittiä per hex digit c d a 1010 e b 1011 f 1111 Example: eca #22
23 MIPS I-formaatin käsky op rs rt constant or address 6 bits 5 bits 5 bits 16 bits Välittömät aritmetiikka- ja lataa/tallenna-käskyt rt: kohde- tai lähderekisterin numero Constant: 2 15 to Address: rs-rekisterissä olevaan kantaosoitteeseen lisättävä poikkeama Suunnitteluperiaate 4: Hyvä suunnittelu vaatii hyviä kompromissejä Erilaiset formaatit monimutkaistavat dekoodausta Formaatit kannattaa pitää mahdollisimman samanlaisina #23
24 #24 Talletetun ohjelman periaate (Stored Program) Käskyt esitetään binäärisinä kuten data Käskyt ja data talletetaan muistiin Ohjelmat voivat ohjelmoida ohjelmiin Esim. kääntäjät, linkkerit, Binääriyhteensopivuus sallii käännettyjen ohjelmien toimimisen myös erilaisissa tietokoneissa standardoidut käskykannat
25 Loogiset operaatiot käskyt bittien manipulointiin Operaatio C Java MIPS Siirrä vasemmalle << << sll Siirrä oikealle >> >>> srl AND & & and, andi OR or, ori NOT ~ ~ nor käyttökelpoisia poimittaessa tai lisättäessä bittiryhmiä sanaan #25
26 Siirto-operaatiot (Shift) op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits shamt: siirrettävien bittipositioiden lukumäärä Looginen siirto vasemmalle Siirrä vasemmalle ja lisää 0 oikealta i-bittinen Sll vastaa kertomista luvulla 2 i Looginen siirto oikealle Siirrä oikealle ja lisää 0 vasemmalta i-bittinen srl vastaa luvun jakamista luvulla 2 i (ainoastaan etumerkittmillä luvuilla) #26
27 AND -operaatio bittien maskaus sanan sisällä Valitse muutamia bittejä, nollaa kaikki muut and $t0, $t1, $t2 $t2 $t1 $t #27
28 OR -operaatio Lisätään bittejä sanaan Aseta osa biteistä 1 koskematta muihin or $t0, $t1, $t2 $t2 $t1 $t #28
29 NOT -operaatio Sanan bittien invertointi Muuta 0 1 ja 1 0 MIPS: 3-operandin NOR -käsky a NOR b == NOT ( a OR b ) nor $t0, $t1, $zero Rekisteri 0: luettaessa aina nolla $t1 $t #29
30 Ehdolliset operaatiot Haarautuminen nimiöityyn käskyyn, jos annettu ehto on tosi muutoin jatketaan sekventiaalista suoritusta beq rs, rt, L1 jos (rs == rt), haaraudu L1-nimiöityyn käskyyn bne rs, rt, L1 jos (rs!= rt), haaraudu L1-nimiöityyn käskyyn j L1 ehdoton hyppy L1-nimiöityyn käskyyn #30
31 If-lausekkeiden kääntäminen C -koodi: if (i==j) f = g+h; else f = g-h; f, g, rekistereissä $s0, $s1, käännetty MIPS -koodi: bne $s3, $s4, Else add $s0, $s1, $s2 j Exit Else: sub $s0, $s1, $s2 Exit: Assembler laskee osoitteet #31
32 Silmukkalausekkeiden kääntäminen C -koodi: while (save[i] == k) i += 1; i rekisterissä $s3, k rekisterissä $s5, save:n osoite rekisterissä $s6 käännetty MIPS -koodi: Loop: sll $t1, $s3, 2 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: #32
33 Peruslohkot (Basic Block) käskysekvenssi, jossa ei ole haarautumisia (paitsi lopussa) ei ole haarautumisen kohteista (paitsi alussa) Kääntäjät identifioivat peruslohkot optimointeja varten Kehittyneissä prosessoreissa voidaan kiihdyttää peruslohkojen suoritusta #33
34 Lisää ehdollisia operaatioita Aseta tulokseksi 1, jos ehto on tosi muutoin aseta 0 slt rd, rs, rt if (rs < rt) rd = 1; else rd = 0; slti rt, rs, constant if (rs < constant) rt = 1; else rt = 0; Käytetään yhdessä beq- tai bne -käskyn kanssa slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # branch to L #34
35 Haarautumiskäskyn suunnittelu miksei blt, bge, jne? Laitteisto vertailuille <,, on hitaampi kuin =, haarautumisen yhdistäminen vaatii enemmän työtä per käsky, hidastaa kellotaajuutta kaikki käskyt kärsivät! beq ja bne ovat yleisimmin tarvitut vertailut hyvä suunnittelukompromissi #35
36 Etumerkillinen / etumerkitön etumerkillinen vertailu: slt, slti etumerkitön vertailu: sltu, sltui esimerkki $s0 = $s1 = slt $t0, $s0, $s1 # signed 1 < +1 $t0 = 1 sltu $t0, $s0, $s1 # unsigned +4,294,967,295 > +1 $t0 = 0 #36
37 Aliohjelmakutsu (Procedure Calling) Tarvittavat askeleet 1. Tallenna aliohjelman argumentit rekistereihin 2. Siirrä ohjelman hallinta aliohjelmalle 3. Hanki aliohjelmalle tallennustilaa 4. Suorita aliohjelman operaatiot 5. Talleta tulos rekisteriin kutsujaa varten 6. Palaa kutsukohtaan #37
38 Rekistereiden käyttö $a0 $a3: argumentit (reg. 4 7) $v0, $v1: tulosarvot (reg. 2 3) $t0 $t9: välitulokset Kutsuttava voi kirjoittaa näihin vapaasti $s0 $s7: talletus Kutsuttavan talletettava/palautettava $gp: globaali osoitin staattiseen dataan (reg. 28) $sp: pino-osoitin (stack pointer) (reg. 29) $fp: kehysosoitin (frame pointer) (reg. 30) $ra: paluuosoite (reg. 31) #38
39 Aliohjelmakutsujen käskyt Aliohjelmakutsu: jump and link jal ProcedureLabel Kutsua seuraavan käskyn osoite talletetaan rekisteriin $ra Hypätään kohdeosoitteeseen Aliohjelmasta paluu: jump register jr $ra Kopioi rekisterin $ra ohjelmalaskuriin (program counter) Tätä voidaan käyttää myös etukäteen laskettuihin hyppyihin Esim. case/switch -lausekkeet #39
40 Aliohjelmakutsu, esimerkki C-koodi: int leaf_example (int g, h, i, j) { int f; f = (g + h) - (i + j); return f; } g,, j rekistereissä $a0,, $a3 f rekisterissä $s0 (joten ei tarvetta tallentaa rekisteriä $s0 pinoon) Tulos talletetaan rekisteriin $v0 #40
41 Aliohjelmakutsu, esimerkki MIPS-koodi: Leaf_example: addi $sp, $sp, -4 sw $s0, 0($sp) add $t0, $a0, $a1 add $t1, $a2, $a3 sub $s0, $t0, $t1 add $v0, $s0, $zero lw $s0, 0($sp) addi $sp, $sp, 4 jr $ra Save $s0 on stack Procedure body Result Restore $s0 Return #41
42 Sisäkkäiset aliohjelmakutsut (Nested Procedures) Aliohjelma kutsuu muita aliohjelmia Sisäkkäisissä kutsuissa, kutsuja tallettaa pinoon paluuosoitteen ja kaikki argumentit ja väliaikaismuuttujat, joita tarvitaan kutsun jälkeen palauttaa talletetut tiedot pinosta kutsun jälkeen #42
43 Sisäkkäiset kutsut, esimerkki C -koodi: int fact (int n) { if (n < 1) return f; else return n * fact(n - 1); } Argumentti n rekisterissä $a0 Tulos rekisterissä $v0 #43
44 Sisäkkäiset kutsut, esimerkki MIPS -koodi: fact: addi $sp, $sp, -8 # adjust stack for 2 items sw $ra, 4($sp) # save return address sw $a0, 0($sp) # save argument slti $t0, $a0, 1 # test for n < 1 beq $t0, $zero, L1 addi $v0, $zero, 1 # if so, result is 1 addi $sp, $sp, 8 # pop 2 items from stack jr $ra # and return L1: addi $a0, $a0, -1 # else decrement n jal fact # recursive call lw $a0, 0($sp) # restore original n lw $ra, 4($sp) # and return address addi $sp, $sp, 8 # pop 2 items from stack mul $v0, $a0, $v0 # multiply to get result jr $ra # and return #44
45 Paikallinen data pinossa Kutsuttavan aliohjelman allokoima paikallinen data esim. C:n automaattisen muuttujat Aliohjelman kehys (aktivointitietue, frame pointer $fp) Jotkut kääntäjät käyttävät pinon talletustilan hallintaan #45
46 Muistisegmentit Text: ohjelmakoodi Static data: globaalit muuttujat esim. staattiset muuttujat C- kielessä, vakiotaulukot ja merkkijonot Rekisteri $gp alustetaan osoitteella siten, että ±poikkeamia voidaan käyttää osoittamaan tähän segmenttiin Dynamic data: heap Esim. malloc (C-kieli), new (Java-kielessä) Stack: automaattitallennus #46
47 Merkkijonot tavu-enkoodattu kirjainmerkkijoukko ASCII: 128 merkkiä 95 grafiikkamerkkiä, 33 ohjausmerkkiä Latin-1: 256 merkkiä ASCII, +96 lisägrafiikkamerkkiä Unicode: 32-bit merkkijoukko Käytetään Java, C++ wide characters, Suurin osa kaikista maailman kirjainmerkeistä, plus erilaisia symboleita UTF-8, UTF-16: muuttuvan mittaiset enkoodaukset #47
48 Tavu/puolisana-operaatiot Voidaan käyttää bittioperaatioissa MIPS: tavun/puolisanan lataus/tallennus Yleensä merkkijonojen käsittelyssä lb rt, offset(rs) lh rt, offset(rs) Rekisterissä rt etumerkin laajennus 32 bittiin lbu rt, offset(rs) lhu rt, offset(rs) Rekisterissä rt nollalla laajennus 32-bittiin sb rt, offset(rs) sh rt, offset(rs) Tallenna 32-bittisen rekisterin oikeanpuoleisin (least significant) tavu tai puolisana #48
49 String Copy -esimerkki C -koodi (naïve): Null-terminoitu merkkijono void strcpy (char x[], char y[]) { int i; i = 0; while ((x[i]=y[i])!='\0') i += 1; } x:n ja y:n osoitteet rekistereissä $a0 ja $a1 i rekisterissä $s0 #49
50 String Copy -esimerkki MIPS -koodi: strcpy: addi $sp, $sp, -4 # adjust stack for 1 item sw $s0, 0($sp) # save $s0 add $s0, $zero, $zero # i = 0 L1: add $t1, $s0, $a1 # addr of y[i] in $t1 lbu $t2, 0($t1) # $t2 = y[i] add $t3, $s0, $a0 # addr of x[i] in $t3 sb $t2, 0($t3) # x[i] = y[i] beq $t2, $zero, L2 # exit loop if y[i] == 0 addi $s0, $s0, 1 # i = i + 1 j L1 # next iteration of loop L2: lw $s0, 0($sp) # restore saved $s0 addi $sp, $sp, 4 # pop 1 item from stack jr $ra # and return #50
51 32-bittiset vakiot Suurin osa vakioista on pieniä 16-bittinen välitön vakio on useimmiten riittävä 32-bittinen vakio lui rt, constant kopioi 16-bittisen vakion rt:n vasemmanpuoleisiin 16 bittiin Nollaa rt:n oikeanpuoleiset 16 bittiä lui $s0, ori $s0, $s0, #51
52 Haarautumisosoitteet Haarautumiskäsky määrittelee Opcode, 2 rekisteriä ja kohdeosoitteen Yleensä haarautumiskohde on lähellä haarautumiskohtaa joko edessä tai takana op rs rt constant or address 6 bits 5 bits 5 bits 16 bits Ohjelmalaskuriin suhteutettu osoitus (PC-relative addressing) Kohdeosoite = PC + offset 4 (offset voi olla ±) PC inkrementoitu jo 4:llä ennen kohteen laskemista #52
53 Hyppyosoitteet Hyppyjen (j,jal) kohteet voivat olla missä tahansa text-segmentissä Täydellinen kohdeosoite enkoodataan käskyyn op address 6 bits 26 bits (Pseudo)suora hyppyosoitus kohdeosoite= PC : (address 4) #53
54 Haarautumiskohde, esimerkki Loop koodi aiemmasta esimerkistä oletetaan Loop osoitteessa Loop: sll $t1, $s3, add $t1, $t1, $s lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, j Loop Exit: #54
55 Haarautuminen kauemmas haarautumiskohde on liian kaukana enkoodattavaksi 16-bittiseen poikkeamaan Assembler kirjoittaa koodin toisella tavalla Esim. beq $s0,$s1, L1 bne $s0,$s1, L2 j L1 L2: #55
56 #56 Osoitusmuodot; yhteenveto
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotLOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
LisätiedotOngelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotJakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotTiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto
Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon tyypit Kommunikointi
LisätiedotLuento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotLuento 2 (verkkoluento 2) Ttk-91 järjestelmä
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1 Suorituksenaikainen suorittimen
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Lisätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotAliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Lisätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotJakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotLuento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivointitietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
LisätiedotTieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo
LisätiedotLuento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivaatiotietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
LisätiedotTeemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?
Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi 27.1.2011 Tietokone suoritin (CPU) väylä tai väylät laiteohjaimet muiden koneiden kanssa Ethernet, modeemi,... laitteiden kanssa Levy, DVD, CD,
LisätiedotLuento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotOngelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
LisätiedotLuento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite
LisätiedotJakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotAliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotJakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotLuento 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)
Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLaitteistonläheinen ohjelmointi
Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Luennot: Perjantai 12-14 TB104 Esitiedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali:
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotTIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos
TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 4 Tietokoneen sisäinen toiminta Edellisisää osioiss aon tarkasteltu tietokoneen kehittymistä ja sen
LisätiedotAktivaatiotietue. Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille. Kehysosoitin (%fp) missä tiedot ovat
Aktivaatiotietue Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille Parametrit ja paluuarvo Paluuosoite Linkkitiedot Kehysosoitin (%fp) missä tiedot ovat Missä edellisen tiedot ovat (palattaessa
LisätiedotMonipuolinen esimerkki
Monipuolinen esimerkki Lopuksi monipuolinen esimerkki, jossa ohjelmisto koostuu pääohjelmasta ja kahdesta aliohjelmasta, joista toinen on proseduuri ja toinen funktio. Funktio Sqrt(int n): int Sqrt(int
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
LisätiedotLuento 2 (verkkoluento 2) Ttk-91 järjestelmä
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet
LisätiedotKertausluento luennoista 1-3 1
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
Lisätiedot1. Keskusyksikön rakenne
1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen.
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
LisätiedotANSI/IEEE Std
Digitaalitekniikan matematiikka Luku 9 Sivu 1 (26) Lukujärjestelmät ja lukujen esittäminen ANSI/IEEE Std 754-2008 0 1 0 1 1 0 0 0 B = Σ B i 2 i Digitaalitekniikan matematiikka Luku 9 Sivu 2 (26) Johdanto
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotLuento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC 12 LOAD R1, =X LOAD R2, X int x =12; symbolin X arvo muuttujan
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
LisätiedotKappale 20: Kantaluvut
Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!
LisätiedotLaitteistonläheinen ohjelmointi
Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Harjoitustyö: Mikko Vulli Esituedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali: luentomoniste
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
LisätiedotAlgoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
LisätiedotKäskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1
Tietokoneen rakenne Luento 7 Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7-1 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn
Lisätiedot4.2. ALIOHJELMAT 71. Tulosvälitteisyys (call by result) Tulosvälitteinen parametri kopioidaan lopuksi
4.2. ALIOHJELMAT 71 sisältyä kaikki tarvittavat kontrollia ohjaavat rakenteet. Jos se on lause (yleensä lohko), niin on ratkaistava, miten paluuarvo ilmaistaan. Joissakin kielissä (esimerkiksi Pascal)
LisätiedotLukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe
Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen.9.2 Fe Lukujärjestelmät Kymmen- eli desimaalijärjestelmä: kantaluku perinteisesti käytetty ja tuttu numerot,,
LisätiedotLuento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?
Luento 2 tietokone ja sen KOKSI simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen
Lisätiedot2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.
Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotLuento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006
Tietokoneen rakenne Luento 7 Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7-1 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn
LisätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotKertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
LisätiedotTietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
LisätiedotLuento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
LisätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic
LisätiedotLuento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
LisätiedotLuento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
LisätiedotJava-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
LisätiedotLuento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
LisätiedotTietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan
Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn suoritus muodostuu vaiheista, joita
LisätiedotLuento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Tiedon esitys (7) Suorittimen ymmärtämä tieto (9) Tietokoneen toiminta, K
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Luvut, merkit, merkkijonot, totuusarvot, oliot Kuvat, äänet, hajut(?) Ohjelmat 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotLuento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
LisätiedotLuento 6 Tiedon esitysmuodot
Luento 6 Tiedon esitysmuodot Lukujärjestelmät Luvut, merkit, merkkijonot, totuusarvot, oliot Kuvat, äänet, hajut(?) Ohjelmat 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotTietokonearitmetiikka
Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU =
LisätiedotLuento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotJakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori
Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri KOKSI-simulaattori 1 Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman ohjelman toiminnan
LisätiedotLuento 5 (verkkoluento 5) Suoritin ja väylä
Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,
LisätiedotLuento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
LisätiedotMuistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa
ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö
LisätiedotJakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori
Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri KOKSI-simulaattori 1 Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman ohjelman toiminnan
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotTiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Esim. 10 ns data-alueella
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotKonekielinen ohjelmointi
Konekielinen ohjelmointi Antti-Juhani Kaijanaho 9. tammikuuta 2007 1 Konekielet Konekielellä tarkoitetaan sitä kieltä, jota tietokone ymmärtää suoraan. Koska kaikki nykytietokoneet perustuvat samaan ideaan
LisätiedotLuento 1 (verkkoluento 1) Tietokonejärjestelmä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.
LisätiedotC = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out
Digitaalitekniikan matematiikka Luku ivu (2).9.2 Fe C = Aseta Aseta i i = n i > i i i Ei i < i i i Ei i i = Ei i i = i i -- On On On C in > < = CI CO C out -- = + (-) (-) = + = C + Digitaalitekniikan matematiikka
LisätiedotVIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto
Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,
LisätiedotTietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio
Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys Tyypit, Parametrit Aktivointitietue (AT) AT-pino Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset
LisätiedotLuento 4 Aliohjelmien toteutus
Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys Tyypit, Parametrit Aktivointitietue (AT) AT-pino Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset
LisätiedotKertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys
Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys Tyypit, Parametrit Aktivointitietue (AT) AT-pino Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
LisätiedotScheme-kesäkurssi luento 5
Scheme-kesäkurssi luento 5 Timo Lilja 29. 7. 2009 Sisältö 1 Rekisterikonekielen simulaattori 2 Muistinhallinta 3 Rekisterikonekielinen Scheme-tulkki 4 Kääntäjä Rekisterikonekielen simulaattori (SICP 5.2)
Lisätiedot1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.
EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat
LisätiedotIntel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen
Intel Pentium Pro -prosessori tietokonearkkitehtuurit, syksy -96 Ari Rantanen Tarkasteltavat aiheet Katsaus Pentium Pro:n ominaisuuksiin Käskyn suoritus Pentium Pro:n liukuhihnalla Pentium Pro:n suorituskyky
LisätiedotChapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
LisätiedotLuento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto
Luento 2 tietokone ja sen simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman
Lisätiedot