Harjoitukset
Huom 1: Kaikilla oppilailla tulee olla TKTL:n käyttäjätunnus
laitoksen Linux- ja Windows-järjestelmien käyttämistä varten. 
Sivuaineopiskelijoilla tulee olla ensin haettuna  Tietotekniikkaosaston UNIX-tunnus eli ns. cc-tunnus. Mikroverkkotunnus ei käy. UNIX-tunnus haetaan oman pääainelaitoksen kautta. Tämän jälkeen voit hakea  TKTL-tunnusta   vapaamuotoisella hakemuksella sähköpostin kautta osoitteesta tktl-luvat (AT) cs.helsinki.fi. Muista mainita sähköpostissasi cc-tunnuksesi.
  (Ks. ohjeet 
  http://www.cs.helsinki.fi/compfac/ohjeet/Luvat/uusi.html#sivuainelupa). Yleensä tunnus alkaa toimimaan pyynnön käsittelyä seuraavana päivänä. 
Huom 2: Kaikkien tulee olla ilmoittautunut kurssikirjanpitoa varten tälle kurssille TKTL:n ILMO
järjestelmään. Jos et ole tehnyt sitä vielä, niin tee se
ystävällisesti nyt heti. Kiitos.
Huom 3: Kaikilla tulee olla opintopiirityöskentelyä varten CSMoodle'n käyttäjätunnus. Jos et ole vielä hankkinut sitä, niin tee se
ystävällisesti nyt heti (avaamalla  CSMoodle ja klikkaamalla "Kirjaudu" oikealla ylhäällä). Kiitos. Muista myös kirjautua CSMoodle'ssa Tietokoneen toiminta kurssille (salasana vastuuhenkilöltä) ja pyytää ohjaajaasi sijoittamaan sinut omaan opintopiiriisi CSMoodle'ssa.
Tietokoneen toiminta, Syksy 2005, HT 1
Nämä tehtävät käsitellään  harjoituksissa viikolla 45 (7.-11.11.2005). 
  - [2 htp] 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. 
    
Missä fyysisesti erilaisissa tietokoneen komponenteissa ohjelman Simple 
      muuttujan X arvo voi sijaita (TTK-91 koneessa) ohjelman suoritettaessa? 
      Anna kaksi vaihtoehtoa. Perustele vastauksesi. 
    
Anna seuraaviin kysymyksiin vastaukset TTK-91 koneen osalta erikseen kullekin 
      em. kahdelle vaihtoehdolle. 
    
      - Millä konekäskyillä X:n arvon voi tulostaa? 
      
 - Millä konekäskyillä X:n osoitteen voi tulostaa? 
      
 - Millä konekäskyillä X:n arvoksi asetetaan luku 65? 
      
 - Millä konekäskyillä X:n osoitteeksi asetetaan luku 211? 
      
 - Millä konekäskyillä X:n arvo voidaan tallettaa muistiin muuttujan Y 
      arvoksi?        
      
   
   - [1 htp] Korkean tason kieli vs. symbolinen konekielen käskyt. Minkälaisen korkean 
    tason kielen ohjelmakohdan toteuttamiseen voitaisiin käyttää TTK-91 koneen 
    (pseudo)konekäskyä 
    
      - SUB 
      
 - MOD 
      
 - OR 
      
 - XOR 
      
 - COMP 
      
 - JUMP 
      
 - JNGRE 
      
 - DC 
    
 
    Anna esimerkki kustakin tapauksesta.
    Miten pseudokonekäskyt eroavat tavallista konekäskyistä? 
     
  - [2 htp] Muistin osoitusmuodot. Oletetaan, että kullakin käskyllä jatkossa lähtötilanne on oheisen kuvan [Tito luento 2, Kesä 2004] tilanne. Anna kullekin käskylle tehollinen muistiosoite (effective address) ja joko muuttuneen rekisterin sisältö tai muuttuneen muistipaikan osoite ja sisältö. Jos jokin käsky ei ole laillinen, kerro minkä takia näin on.
    
      - LOAD R4, 200 
      
 - LOAD R3, One(R1) 
      
 - LOAD R3, =One(R1) 
      
 - STORE R0, One(R1) 
      
 - STORE R2, @9(R3) 
      
 - LOAD R0, @R1 
      
 - LOAD R1, @(R1) 
      
 - STORE R1, @(R1) 
      
 - STORE R0, R1       
      
 - STORE R1, R0
      
 - STORE R2, =One 
    
 
    
   - [2 htp] Opettele käyttämään Titokone simulaattoria. Katso ohjeita kurssin
    aikataulusivulta http://www.cs.helsinki.fi/teemu.kerola/tito/s2005/aikataulu.html kohdassa
    Kirjallisuutta ja muita viitteitä.
    
      - Lue asennusohje ja asenna Titokone Windows tai Linux-järjestelmääsi.
        Esimerkiksi Windows-järjestelmässä kopio titokone.zip itsellesi sopivaan
        alihakemistoon (esimerkiksi nimeltään titokone) ja pura se sinne. Jos asennat Titokoneen verkkopalvelimelle (esim fs-1), niin se on käytettävissä miltä tahansa TKTL'n koneelta jatkossa. 
      
 - Kopio ttk-91 -esimerkkiohjelmista http://www.cs.helsinki.fi/teemu.kerola/tito/esimerkit ohjelma
        sum.k91 ja talleta se sopivaan alihakemistoon (esimerkiksi titokone/ttk91). Jos selain lisää tiedostonimeen ylimääräisen loppuliitteen (.txt), niin poista se. 
      
 - Käynnistä Titokone. Esimerkiksi Windows-järjestelmässä tuplaklikkaa
        tiedostoa titokone.bat  alihakemistossasi (esimerkiksi titokone). 
      
 -  Valitse asetuksista Options/Set language suomen kielinen käyttöliittymä,
      jollei se ole jo oletusarvoisesti päällä 
      
 - Laita molemmat käännösasetusoptiot (Asetukset/Muuta käännösasetuksia)
        päälle 
      
 - Tyhjennä simuloidun ttk-91 -koneen muisti Tiedosto/Tyhjennä muisti
        -komennolla.
      
 - Valitse symbolisella konekielellä kirjoitettu ohjelma sum.k91 käyttöön
        Tiedosto/Avaa -komennolla (
)
       - Käännä ohjelma sum.k91  Tiedosto/Käännä
        -komennolla (
) konekieliseksi
        ohjelmaksi sum.b91. Käännös tapahtuu rivi kerrallaan 
-nappia
        napauttamalla. Katso kunkin rivin jälkeen tulostuvaa kommenttia
        kommentti-ikkunan ylärivillä. Lopulta voit kääntää koko
        tiedoston loppuun yhteen menoon        
-napilla. 
       - Mitkä ovat symbolien Done, KBD ja Luku arvot? Mihin muistipaikkaan
        muuttujan Summa arvo talletetaan suoritusaikana? Mikä on muuttujan Summa
        alkuarvo? 
      
 - Valitse suoritusasetuksista (Asetukset/Muuta suoritusasetuksia) "Suorita
        koodia rivi kerrallaan" (
)
        ja "Näytä lisäkommentteja suorituksen kulusta" (
). 
       - Suorita ohjelma Tiedosto/Aja komennolla (
).
        Anna syötteet 5, 4, 3 ja 0 yksi kerrallaan KBD-ikkunaan. Suorita
        ohjelmaa rivi kerrallaan 
-napilla
        ja tarkkaile, kuinka jokainen konekäsky vaihtaa koneen "tilaa" muuttamalla
        sen rekistereiden ja/tai muistin sisältöä. Kun/jos kyllästyt
        rivi kerrallaan suoritukseen, voit suorittaa koko ohjelman loppuun yhteen
        menoon (
).
        Ohjelman suoritus pysähtyy silti aina, kun IN-käskyn avulla
        yritetään
        lukea näppäimistöltä KBD. Mikä arvo
        tulostui CRT-ikkunaan? 
       - Laita suoritusasetuksista muut optiot
        pois päältä, mutta pistä optio "Näytä animointi suoritettaessa" (
)
        päälle. 
       - Suorita ohjelma syötteillä 444, 333 ja 0. Ennen ensimmäisen luvun
        syöttämistä
        KBD-ikkunaan valitse Animaattorin yläpalkista sen suoritusnopeudeksi
        "Slow" ja jatka sitten suoritusta käskyjä yksi kerrallaan
        suorittaen (
). Huomaa, kuinka
        jokaisen suoritettavan käskyn yhteydessä käsky ensin haetaan
        muistista käskyrekisteriin
      IR kyseisen konekäskyn osoitteen osoittamasta muistipaikasta. Mikä on
      käskyn "LOAD
      R1, Summa" lukuarvo
      rekisterissä IR?
      Mikä on laitteen
      KBD "muistiosoite" MAR-rekisterissä?
       - Muuta ohjelmaa sillä tavoin, että annettujen lukujen summan asemesta
         lasketaankin niiden tulo. Voit editoida ohjelmaa joko suoraan Titokoneessa
        
        tai simulattorin ulkopuolella millä tahansa tekstipohjaisen tiedoston
        tuottavalla editorilla. Huomaa, että titokoneessa tiedostoa editoidessa
        se aina päivittyy "automaattisesti" - kirjoittaen alkuperäisen tiedoston
      päälle!       
      
 - Onneksi olkoon! Nyt osaat asentaa Titokoneen omaan ympäristöösi ja
        suorittaa sillä valmiiksi tehtyjä ttk-91 -ohjelmia. Osaat myös tehdä
        pieniä muutoksia valmiisiin ohjelmiin. Jatkossa tulet tietenkin tekemään
        ohjelmasi itse. 
 
        
     
 
Teemu Kerola