Tietokoneen toiminta, kevät 2003

Harjoitus 1

käsitellään harjoitusryhmissä keskiviikkona 14.5.2003.

Tehtävät 1, 2 ja 3a ovat ns. kotitehtäviä ja ratkaisut niihin on mietittävä valmiiksi jo ennen harjoituksia. Muut tehtävät tehdään ryhmätöinä harjoitustilaisuudessa. Vaikka niitä ei tarvitsekaan ratkaista etukäteen, niin mitä enemmän niitä ehtii edeltäkäsin miettiä, sitä enemmän harjoituksista oppii.

  1. Selvitä seuraavat käsitteet / käsitteiden erot.
    1. mikroprosessori - mikrotietokone - keskusyksikkö - kontrolliyksikkö
    2. ohjelma - prosessi
    3. lausekieli - symbolinen konekieli -konekieli -mikrokoodi
    4. käännös - tulkinta
    5. tavalliset käskyt - etuoikeutetut käskyt

  2. Simulaattori
    1. Miten simulaattori eroaa todellisesta tietokoneesta?
    2. Miten simulaattorilla suoritettavat ohjelmat eroavat todellisella tietokoneella suoritettavista ohjelmista?
    3. Mitä etua on suorittaa ohjelmia simulaattorilla sen sijaan, että ne suoritettaisiin todellisella tietokoneella?
    4. Mitä haittaa on suorittaa ohjelmia simulaattorilla sen sijaan, että ne suoritettaisiin todellisella tietokoneella?

  3. Korkean tason kieli vs. symbolinen konekieli. Oletetaan, että meillä on korkean tason kielellä (C, Java, Pascal) tehty ohjelma Simple, joka on käännetty TTK-91 koneen konekielelle.
    1. Missä fyysisesti erilaisissa tietokoneen komponenteissa ohjelman Simple muuttujan X arvo voi sijaita (TTK-91 koneessa) ohjelman suoritettaessa? Anna kaksi vaihtoehtoa. Perustele vastauksesi.
    2. Anna seuraaviin kysymyksiin vastaukset TTK-91 koneen osalta erikseen kullekin em. kahdelle vaihtoehdolle.
      1. Millä konekäskyillä X:n arvon voi tulostaa?
      2. Millä konekäskyillä X:n osoitteen voi tulostaa?
      3. Millä konekäskyillä X:n arvoksi asetetaan luku 65?
      4. Millä konekäskyillä X:n osoitteeksi asetetaan luku 211?
      5. Millä konekäskyillä X:n arvo voidaan tallettaa muistiin muuttujan Y arvoksi?

  4. Korkean tason kieli vs. symbolinen konekielen käskyt. Minkälaisen korkean tason kielen ohjelmakohdan toteuttamiseen voitaisiin käyttää TTK-91 koneen (pseudo)konekäskyä
    1. SUB
    2. MOD
    3. OR
    4. XOR
    5. COMP
    6. JUMP
    7. JNGRE
    8. DC
    Anna esimerkki kustakin tapauksesta.
    Miten pseudokonekäskyt eroavat tavallista konekäskyistä?

  5. Esitä allaolevat käskyt TTK-91 käskyrakenteen mukaan kokonaislukuina (ei siis tarvitse muuttaa biteiksi):
       MUL R1, R5
       LOAD R3, Puppu
       ADD R5, Puppu(FP)
       STORE R1, Puppu
       JUMP @Puppu(R1)
       SUB R3, @Link(FP)
    
    Olkoon symbolin Puppu arvo 127 ja symbolin Link arvo 4. Käskyrakenne löytyy Häkkisen monisteesta tai luentokalvoista. Operaatioiden koodit on esitetty TTK-91-koneen käskyluettelossa. .

  6. Seuraavissa symbolisen konekielen käskyissä on virheitä. Etsi virheet ja korjaa käskyt oikeaan muotoon.
    6puu   LOAD R1, apu
    pois   ADD  apu, R1
           SUB  R8, @R1
    Taas5  CMPA R1, sata
           JLES Loppu
           MUL R1, =sata
           NOP R1, 0
           JMP Taas
    Loppu  SVC =HALT, SP