581305-6 Tietokoneen toiminta, 2 ov, kurssikoe 13.12.2004    

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [12 p] Tiedon esitys.
    1. [6p] Oletetaan, että käytössä on Big Endian tavujärjestys. Jos tavuosoitteessa 184 on arvo 0xFF ja tavuosoitteessa 185 on arvo 0xD7, niin mitä desimaalilukua nämä tavut yhdessä esittävät tietokoneessa, joka käyttää kokonaislukujen esitysmuotona
      1. kahden komplementtia
      2. yhden komplementtia
      3. lisäystä 32767:lla (32767=215-1)
      (Etuliite "0x" tarkoittaa, että perässä tuleva luku on heksadesimaalimuotoinen.)
    2. [3p] Mikä on desimaalijärjestelmän luvun 11.325 binääriesitys?
    3. [3p] Mikä on IEEE:n 32-bitin liukulukustandardin mukainen esitys desimaalijärjestelmän luvulle 11.325?

  2. [12 p] Käännös, linkitys ja lataus. Oletetaan, että kyse on "tavallisella" ohjelmointikielellä (kuten esim. C tai Pascal) kirjoitetusta ohjelmasta
    1. [6 p] Mitä tapahtuu ohjelmaa käännettäessä?
    2. [3 p] Mitä tapahtuu ohjelmaa linkitettäessä?
    3. [3 p] Mikä tapahtuu ohjelmaa ladattaessa?

  3. [12 p] Ohjelmien suoritus
    1. Miten suoritin suorittaa konekielisiä ohjelmia?
    2. Minkä tyyppiset tapahtumat aiheuttavat poikkeuksia käskyjen normaaliin suoritusjärjestykseen?
    3. Miten nämä poikkeustilanteet käsitellään?
    4. Miten poikkeustilanteiden käsittely suhtautuu aliohjelmakutsuun ja aliohjelmasta paluuseen? Erot/samankaltaisuudet?

  4. [12 p]  Ttk-91 koneen symbolinen konekieli. Kokonaislukuarvoinen taulukko T[24] on määritelty pääohjelmatasolla. Taulukossa on siis 24 alkiota (alkiot 0,...,23).
    1. [2 p] Anna taulukon T määrittely.
    2. [4 p] Tee funktio Laske(S, N, Pos, Neg), joka palauttaa arvonaan N-alkioisen taulukon S positiivisten alkioiden lukumäärän. Lisäksi funktio palauttaa ulostuloparametrissa Pos positiivisten alkioiden summan ja ulostuloparametrissa Neg negatiivisten alkioiden summan itseisarvon. Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametrit S, Pos ja Neg ovat viiteparametreja ja parametri N on arvoparametri.
    3. [3 p] Anna ttk-91 symbolisen konekielen konekäskyt, joilla em. funktiota käyttäen tulostetaan (pääohjelmatasolla määritellyn) 24 alkioisen taulukon T positiivisten alkioiden lukumäärä ja summa. Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia. Parametrit S, Pos ja Neg ovat viiteparametreja ja parametri N on arvoparametri.
    4. [3 p]Piirrä aktivointiotietuepino
      1. kohdan b) funktion Laske kutsun jälkeen (CALL käskyn jälkeen)
      2. pino-osoittimen SP arvon ollessa suurimmillaan funktiota Laske suoritettaessa
      3. ennen funktion Laske EXIT-käskyn suoritusta
      4. funktion Laske EXIT-käskyn suorituksen jälkeen.



    TTK-91 konekielen käskyt ovat: NOP, STORE, LOAD, IN, OUT, ADD, SUB, MUL, DIV, MOD, AND, IR, XOR, SHL, SHR, COMP, JUMP, JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS, JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC