Harjoitukset (näyttö layout) (tulostus layout) (kämmen layout)
Tietokoneen toiminta, S2003, LH 1
Nämä tehtävät käsitellään harjoituksissa viikolla 45, 3-7.11.2003- 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 (joista kumpikaan ei ole välimuisti). 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?
- 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
Miten pseudokonekäskyt eroavat tavallista konekäskyistä?
- Muistin osoitusmuodot. Oletetaan, että kullakin käskyllä jatkossa lähtötilanne
on luennon 2 kalvon 18 (TTK-91 muistin
osoitusmoodit) 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 R2, =One
- TTK-91 -koneen KOKSI simulaattori
- Miten simulaattori eroaa todellisesta tietokoneesta?
- Miten simulaattorilla suoritettavat ohjelmat eroavat todellisella tietokoneella suoritettavista ohjelmista?
- Mitä etua on suorittaa ohjelmia simulaattorilla sen sijaan, että ne suoritettaisiin todellisella tietokoneella?
- Mitä haittaa on suorittaa ohjelmia simulaattorilla sen sijaan, että
ne suoritettaisiin todellisella tietokoneella?
- [2 htp] Opettele käyttämään Koksi simulaattoria. Katso ohjeita kurssin
aikataulusivulta http:../aikataulu.html
- Kopio koksi.zip sopivaan hakemistoosi (esim hakemisto "koksi"),
pura se samaan hakemistoon.
(Joissakin Windows versioissa hakemistosi tulee sijaita paikallisella levyllä eikä levypalvelimella.) - Käytä esim. "Find" apurutiinia paikallistaaksesi jonkun tekstipohjaisen editorin (esim. "edit.com") ja laita sen absoluuttinen polkunimi (esim. "c:\dos\edit.com") alustustiedoston Koksi.cfg ainoaksi riviksi.
- Imuroi Koksi esimerkkiohjelmista http://www.cs.helsinki.fi/teemu.kerola/tito/esimerkit ohjelma sum.k91 ja talleta se samaan "koksi" hakemistoosi. Selainten ja käyttöjärjestelmien yhteensopivuusongelmien vuoksi voi olla tarpeellista ensin avata kyseinen ttk-91 ohjelma selaimesta ja sitten tallettaa ("save as", File type: text file) se koksi hakemistoon. Kannattanee myös pitää Windowsissa tiedostojen tyyppiä ilmaisevat tiedostonimien loppuosat näkyvissä (optio: Tools - Folder Options - View - Hide file extensions of known file types), jotta voi helpommin varmistua siitä, että tiedoston nimi todella päättyy ".k91" eikä ".txt". Ks. myös http://www.cs.helsinki.fi/u/kerola/tito/esimerkit/README.txt
- Käynnistä Koksi simulaattori (koksi.exec), nollaa sen muisti. Useimmiten simulattorin kontrollointi on helpompaa näppäimistön (return, nuolet, Esc) avulla kuin hiirtä käyttäen.
- Laita asetuksista optio "kommentointi" päälle
- Lataa ja käännä ohjelma "sum.k91".
- Mitkä ovat symbolien DONE, KBD ja LUKU arvot?
- Suorita ohjelma syötteillä 5, 4, 3 ja 0. Mikä arvo tulostui?
- Missä muistipaikassa muuttujan SUMMA arvo on talletettuna?
- Laita asetuksista optio "kommentointi" pois päältä ja suoritusnopeudeksi "hidas".
- Suorita ohjelma syötteillä 4, 3 ja 0. Mikä arvo tulostui? Miksi tulostettu
arvo oli väärin?
Esitä kaksi periaattellisesti erilaista tapaa korjata asia. - Kokeile molempia tapoja korjata asia ja näytä, että lähestymistapasi olivat oikeita.
- Muuta ohjelmaa sillä tavoin, että annettujen lukujen summan asemesta
lasketaankin niiden tulo. Voit editoida ohjelmaa joko suoraan Koksi
simulaattorissa valitsemallasi editorilla (alustustiedostosta Koksi.cfg)
tai simulattorin ulkopuolella millä tahansa tekstipohjaisen tiedoston
tuottavalla editorilla. Kaikki Koksi ohjelmatiedostot täytyy kuitenkin
tallettaa tuohon samaan "koksi" hakemistoon.
- Kopio koksi.zip sopivaan hakemistoosi (esim hakemisto "koksi"),
pura se samaan hakemistoon.
Teemu Kerola