Tietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Samankaltaiset tiedostot
Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Luento 4 Aliohjelmien toteutus

Aliohjelmien toteutus Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 5 Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Jakso 4 Aliohjelmien toteutus

Luento 5 Suoritin ja väylä

Jakso 4 Aliohjelmien toteutus

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus

Luento 5 (verkkoluento 5) Suoritin ja väylä

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Tiedon esitys (7) Suorittimen ymmärtämä tieto (9) Tietokoneen toiminta, K

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)

Tiedon tyypit Kommunikointi ihmisen kanssa. Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Suorittimen ymmärtämä tieto (9)

Luento 6 Tiedon esitysmuodot

Jakso 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot. Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?)

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 12 Yhteenveto

1. Keskusyksikön rakenne

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tavoitteet (4) Luento 12 Yhteenveto. Keskeisiä asioita. Mitä hyötyä tästä on? (2) Esimerkkikone: TTK-91 laitteisto suoritin - CPU

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright Tavoitteet (4)

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat?

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 12 Yhteenveto

Tiedon esitysmuodot Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2003

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Luento 12 Yhteenveto. Tavoitteet. Keskeisiä asioita. Mitä hyötyä tästä on? Esimerkkikone: TTK-91 laitteisto. Tietokoneen toiminta 27.4.

Luento 12 Yhteenveto

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 29/01/2001 Teemu Kerola, Copyright 2001

Tietokoneen toiminta, K Tavoitteet (4)

Kertausluento luennoista 1-3 1

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Muistihierarkia Kiintolevyt I/O:n toteutus

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2)

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: rekisterit

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Monipuolinen esimerkki

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Järjestelmän ulkoinen muisti I/O

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Ttk-91 esimerkkitietokone ja sen simulaattori

2 Konekieli, aliohjelmat, keskeytykset

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 8 Ohjelman toteutus järjestelmässä

Muistihierarkia Kiintolevyt I/O:n toteutus

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Aliohjelmatyypit. Parametrien tyypit. Aktivointitietue. Aktivointitietuepino. Rekursio. Käyttöjärjestelmäpalvelut. Aliohjelmien toteutus

Transkriptio:

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 Kokonaisluvut Liukuluvut Muut tiedot 1 Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 2 Luento 4, Aliohjelmat 1

Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit, paluuarvo metodi parametrit, ehkä paluuarvo Konekielen tason vastaavat käsitteet aliohjelma parametrit ja paluuarvo(t) 3 Parametrit ja paluuarvo Muodolliset parametrit määritelty aliohjelmassa ohjelmointihetkellä tietty järjestys ja tyyppi paluuarvot käsittely hyvin samalla tavalla kuin parametreillekin Todelliset parametrit ja paluuarvo todelliset parametrit sijoitetaan muodollisten parametrien Tulosta (int x, y) Laske(int x): int paikalle kutsuhetkellä suoritusaikana paluuarvo saadaan paluuhetkellä ja sitä käytetään kuten mitä tahansa arvoa Tulosta (5, apu); x = Laske( y+234); 4 Luento 4, Aliohjelmat 2

Parametrityypit Arvoparametri välitetään parametrin arvo (eli sen kopio) kutsuhetkellä arvo voidaan lukea alkuperäistä arvoa ei voi muuttaa, mutta arvon kopiota voi muuttaa Viiteparametri välitetään parametrin osoite arvo ja osoite voidaan lukea, arvoa voi muuttaa Nimiparametri välitetään parametrin nimi nimi (merkkijono) kuvataan arvoksi kutsuhetkellä semantiikka määräytyy vasta kutsuhetkellä Swap(i, k); Swap(i, T[i]); tmp = i; i = T[i]; T[i] = tmp; #? 5 Aliohjelmien toteutuksen osat Paluuosoite kutsukohtaa seuraava käskyn osoite Parametrien välitys Paluuarvon välitys Paikalliset muuttujat Rekistereiden allokointi (varaus) kutsuvalla ohjelman osalla voi olla käytössä rekistereitä, joiden arvon halutaan säilyä! pääohjelma, toinen aliohjelma, sama aliohjelma, metodi, käytettyjen rekistereiden arvot pitää aluksi tallettaa muistiin ja lopuksi palauttaa ennalleen 6 Luento 4, Aliohjelmat 3

Aktivointitietue Aliohjelman toteutusmuoto (ttk-91) funktion paluuarvo (tai kaikki paluuarvot) kaikkien (sisäänmeno- ja ulostulo-) parametrien arvot paluuosoite kutsukohdan aktivointitietue FP kaikki paikalliset muuttujat ja tietorakenteet aliohjelman ajaksi talletettujen rekistereiden alkuperäiset arvot (activation record, activation frame) int funca (int x,y); paluuarvo param x param y vanha PC vanha FP paik. m. i1 paik. m. i2 vanha R1 vanha R2-2 +1 7 Aktivointitietueiden hallinta Aktivointitietueet (AT) varataan ja vapautetaan dynaamisesti (suoritusaikana) pinosta (muistista) SP (=R6) osoittaa pinon pinnalle Aktivointitietuepino FP (R7) osoittaa voimassa olevan AT:n sovittuun kohtaan (ttk-91: vanhan FP:n osoite) Pinossa olevaa AT:tä rakennetaan ja puretaan käskyillä: FP PUSH, POP, PUSHR, POPR SP CALL, EXIT (SVC, IRET) Talleta R0-R5 pinoon AT main AT sum AT funca kasvava muistiosoite 8 Luento 4, Aliohjelmat 4

Aliohjelman käytön toteutus Toteutus jaettu eri yksiköille Kutsuva rutiini CALL käsky Kutsuttu rutiini EXIT käsky Kutsuva rutiini varaa tilaa paluuarvolle pinosta laita parametrit (arvot tai osoitteet) pinoon talleta vanha PC ja FP, aseta uudet PC ja FP varaa tilaa paikallisille muuttujille talleta käytettävien rekistereiden prolog vanhat arvot pinoon (itse aliohjelman toteutus varsinainen työ) palauta rekistereiden arvot vapauta paikallisten muuttujien tila epilog palauta PC ja FP vapauta parametrien tila ota paluuarvo pinosta 9 KJ-palvelun kutsu (proseduraalisesti) Samalla tavalla kuin aliohjelman kutsu CALL käskyn asemesta SVC Tila paluuarvolle? Parametrit pinoon vai rekistereissä? SVC kutsu Kutsuttavan rutiinin numero operandina IRET paluu Paluuarvo (OK, virhe) pois pinosta tarkistusta varten fok = ReadBlock (fp, 64)... PUSH SP, =0 ;paluuarvo PUSH SP, =FileBuffer PUSH SP, CharCnt PUSH SP, FilePtr SVC SP, =ReadFile (kesk.) POP SP, R1 JNZER R1, FileTrouble 10 Luento 4, Aliohjelmat 5

11 Luento 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset TTK-91:n ja simulaattorin rakenne 12 Luento 4, Aliohjelmat 6

TTK-91 suorittimen rakenne regs R0 R1 sisäinen väylä ALU R2 R3 R4 R6 R5 R7 Kontrollisignaalit PC IR CU TR SR MMU muistiväylä BASE LIMIT MAR MBR kontrolliväylä osoiteväylä dataväylä Bus ctl 13 TTK-91 konekäskyn rakenne Käskyn esitys bittitasolla on aina: OPER käskykoodi 8 bit field Rj 3 bit M 2 bit Ri 3 bit ADDR osoiteosa 16 bit field 31 24 21 19 16 15 0 Rj = käskyn ensimmäinen operandi Ri = indeksirekisteri (R0 0) M = muistinoutojen määrä toiseen operandiin (ennen mahdollista muistiin talletusta) muistiosoite tai (pienehkö) vakio (addressing mode) 00 eli 0 kpl, välitön osoitus (STORE: suora osoitus) 01 eli 1 kpl, suora osoitus (STORE: epäsuora osoit.) 10 eli 2 kpl, epäsuora osoitus (STORE: epäkelpo arvo) ( 11 eli 3 kpl, epäkelpo arvo poikkeustilanne ) 14 Luento 4, Aliohjelmat 7

TTK-91 virtuaalimuisti Virtuaalinen osoiteavaruus 0 23 511 ohjelman käyttämät osoitteet MMU < LIMIT? + BASE BASE: LIMIT: 1000 512 Fyysinen osoiteavaruus 0 1023 1048575 muistipiirien käyttämät osoitteet 15 Virtuaalimuistin osoitteenmuunnos menetelmiä Kanta- ja rajarekisteriin perustuva base ja limit rekisterit (esim. ttk-91, 8086,...) Sivuttava sivutaulut virtuaaliavaruus jaettu saman kokoisiin sivuihin Segmentoiva virtuaaliavaruus jaettu ohjelman mukaan erillisiin eri kokoisiin Lisää käyttöjärjestelmä segmentteihin tietoa? kurssit koodi segmentti, data segmentti, Lisää tietoa? käyttöjärjestelmä kurssit 16 Luento 4, Aliohjelmat 8

Keskeytysten käsittely Jokainen mahdollinen keskeytystyyppi on ennalta tunnettu, eli mitään todella yllättävää ei tapahdu Jokaiselle keskeytystyypille on oma käyttöjärjestelmän tuntema interrupt handler keskeytyskäsittelyrutiini Jokaisen käskyn suorituksen jälkeen tarkistetaan keskeytysten olemassaolo SR:stä ja haaraudutaan keskeytyskäsittelijään tarvittaessa joskus keskeytykset on estetty (ttk-91:ssä SR:n bitti D) paluu käsittelijästä return-from-interrupt-handler käskyllä (esim. IRET, tms) Yllättävä aliohjelmakutsu 17 Keskeytyskäsittelijä Osa käyttöjärjestelmää (kesk.) Ennen keskeytyskäsittelijään hyppäämistä asetetaan suoritin ja MMU etuoikeutettuun käyttöjärjestelmätilaan (supervisor state) SR:n bitti P on päällä => etuoikeutettu tila eli (P = Priviledged) käyttöjärjestelmä tila käyttöjärjestelmätilassa saa viitata mihin tahansa kohtaan muistia (MMU: BASE=0, LIMIT= hyvin iso ) käyttöjärjestelmätilassa saa käyttää kaikkia konekäskyjä (esim. IRET tai ClearCache) Käsittelijästä paluun yhteydessä MMU:n tila ja suorittimen tila asetetaan ennalleen 18 Luento 4, Aliohjelmat 9

Suorittimen tilan muuttaminen user SVC, INT IRET kernel Käyttäjätila etuoikeutettu tila keskeytys tai suora KJ:n palvelupyyntö (SVC käsky) keskeytyskäsittelijä tarkistaa onko (oliko) oikeutta tilan vaihtoon (interrupt handler) Etuoikeutettu tila käyttäjätila etuoikeutettu konekäsky return from interrupt handler esim. IRET (Pentium II) palauttaa kontrollin keskeytyneeseen kohtaan ja suorittimen tilan keskeytystä edeltäneeseen tilaan 19 TTK-91 Nouto- ja suoritussykli vielä vähän tarkemmin (kesk.) Hae käsky PC++ M=2 M>0 pura käsky, laske osoite lue muistista M=0 suorita operaatio pushr kirj. muistiin store push pushr tarkista keskeytykset noutosykli Noutosykli suoritussykli 20 Luento 4, Aliohjelmat 10

Väylät 1 2 Kullakin laitteella oma osoite Yksi lähettää, kaikki kuulevat, vain oikea laite vastaanottaa Paljon erilaisia Lähellä suoritinta olevat ovat nopeampia väylä 8 9 10 Lisää tietoa? Tietokoneen rakenne -kurssi 21 TTK-91 koneen simulaattori Tavallinen Javalla kirjoitettu ohjelma TTK-91 koneen osat tietorakenteina rekisterit, MMU, CU, muisti Simuloi käskyjen suoritussykliä käsky kerrallaan Toteuttaa myös TTK-91 koneen käyttöjärjestelmän osat osana tavallista ohjelmaa assembler kääntäjä, lataaja, debugger, kesk. käsittelijät Graafinen käyttöliittymä Ks. Processor.java Titokoneen koodissa 22 Luento 4, Aliohjelmat 11

TTK-91 käskyn suoritussykli hae käsky simuloidusta muistista IR = mem[pc] pura käsky osiin (OPER, Rj, M, Ri, ADDR) ja laske osoiteosan arvo TR (ADDR tai regs[ri]+addr) ADDR = IR mod 32768 TR = regs[ri] +ADDR tee tarvittava määrä (M) operandin hakuja muistista rekisteriin TR TR = mem[tr] valitse aliohjelma operaatiokoodin (OPER) perusteella if (opcodeok[oper] = FALSE) then SR.U = 1; simuloi konekäskyn suorituksen muutokset rekistereihin (R0 R7, SR, PC, MAR, MBR) ADD Rj, M ADDR(Ri) regs[rj] += TR; lopeta suoritus jos SVC tai keskeytys SR.O = 23 24 Luento 4, Aliohjelmat 12

Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 25 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston sisäinen talletus kuvaformaatit, ääniformaatit, pakkausstandardit,... kokonaisluvut, liukuluvut, merkit, merkistöt ohjelmat Suorittimen omana lajinaan ymmärtämät tyypit on olemassa konekäskyjä tälle tietotyypille kokonaisluvut liukuluvut (useimmat suorittimet nykyään) totuusarvot (jotkut suorittimet) merkit (jotkut suorittimet) konekäskyt 26 Luento 4, Aliohjelmat 13

Tiedon esitys Kysymys: miten esittää eri tyyppisiä tietoja? Vastaus: koodataan ne biteiksi kaikki tieto on koneessa bitteinä Kaikelle käsitellylle tiedolle on omat koodausmenetelmänsä kaikkia koodausmenetelmiä ei ole standardoitu samalla tietotyypille voi olla useita koodausmenetelmiä kokonaisluvut, liukuluvut, merkit, merkkijonot, kuvat,... ongelma: ymmärtävätkö koneet toisiaan? tiedon esitysmuotoa voidaan joutua muuttamaan, kun tietoa siirretään koneelta toiselle 27 Suorittimen ymmärtämä tieto Kaikki tieto koneessa on koodattuna biteiksi Muistissa voidaan esittää kaikki tieto millä tahansa sovitulla esitystavalla (koodauksella) Suoritin osaa tehdä operaatioita joillakin esitystavoilla koodatuille tiedoille TTK-91: kokonaisluvut kokonaisluvut ja liukuluvut (lähes aina) totuusarvot, merkit ja merkkijonot (joskus) kuvat ja äänet (ei yleensä ellei erikoistunut suoritin) hajut (ei vielä) Muiden tietojen käsittely tapahtuu ohjelmallisesti esim. merkkejä (merkkien esitysmuotoa) voidaan käsitellään kokonaislukuoperaatioilla ja aliohjelmilla 28 Luento 4, Aliohjelmat 14

Big vs. Little Endian Miten monitavuiset arvot talletetaan? 0x1200: Sanan osoite 0x1200 0x1201 0x1202 0x1203 talleta 0x11223344?? tavuosoitteet Big-Endian: eniten merkitsevä tavu pienimpään osoitteeseen Little-Endian: vähiten merkitsevä tavu pienimpään osoitteeseen 0x11 0x22 0x33 0x44 0x1200 0x1201 0x1202 0x1203 0x44 0x33 0x22 0x11 29 Negatiiviset luvut arvo talletus +57 = 0011 1001 Etumerkkibitti erikseen luku Yhden komplementtiesitys sign bit = MSB = most significant bit -57 = 1011 1001-57 = 1100 0110 talletusmuoto Kahden komplementtiesitys sign bit -57 = 1100 0111 +1 Vakiolisäys Esim lisää 127 (=2 8 1) yleensä: 2 bittilkm -1 Talleta etumerkittömänä sign bit -57 = 0100 0110-57 + 127 =70 +57 = 1011 1000 +57+127=184 30 Luento 4, Aliohjelmat 15

IEEE 32-bit FP Standard + 15 0.1875 = 0.0011 sign exponent 23 bittiä mantissalle, siten että... 1) Binääripiste (.) on heti ensimmäisen bitin jälkeen 2) Mantissa on normalisoitu: vasemmanpuolimmainen bitti on 1 mantissa or significand 1/8 = 0.1250 1/16= 0.0625 0.1875 mantissa eksponentti 0.0011 15 1.1000 12 (kesk.) 3)Vasemmanpuolimmaista (eniten merkitsevä) bittiä (1) ei talleteta (implied bit, piilobitti) 1000 12 24 bitin mantissa! 31 UCS ja Unicode UCS - Universal Character Set Samat merkistöt, eri standardit 2 tavua eli 16 bittiä per merkki 65536 merkkiä koko maailmassa käytössä oleville n. 200000 symbolille Kontrollimerkit 0x0000-001F and 0x0080-009F 0x007F = DELETE, 0x0020 = SPACE UCS:ssä myös 8-bittiset koodi rivit eri alueille tai tarkoituksiin (zone) omat 8-bittiset koodinsa 32 Luento 4, Aliohjelmat 16

Merkkijonot Yleensä peräkkäin talletettu joukko tavuja Lisäksi tarvitsee jollain tavalla koodata merkkijonon pituus laitetaan loppuun erikoismerkki, tai C-kieli: \0 = 0x00 toteutetaan tietueena 20 Ei yleensä nyt enää! pituus merkkijono ei omia konekäskyjä, manipulointi aliohjelmilla kokonaisluku- ja bittimanipulointikäskyt joissakin koneissa strcopy ja strcmp konekäskyt 33 Maku, haju, tunto ja muu data (kesk.) Tähtien kirkkaus, hajut, veneen tyyppi, tunteen palo,. Toteutus sovelluskohtaisesti, ei vielä yleisiä standardeja kokonaisluvut (diskreetti data) liukuluvut (jatkuva data) Ei omia konekäskyjä, manipulointi omilla aliohjelmilla 34 Luento 4, Aliohjelmat 17

-- Luennon 6 loppu -- 26.3.2010 Copyright Teemu Kerola 2003 35 Luento 4, Aliohjelmat 18