Harjoitukset
Tietokoneen toiminta, HT 2
- Muistin osoitusmuodot. Oletetaan, että kullakin käskyllä jatkossa lähtötilanne on oheisen kuvan
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
- LOAD R1, =X(R0)
- STORE R2, =One
- Ttk-91 tietokone ja sen simulaattori.
- Mitä tietotyyppejä voidaan käsitellä
ttk-91 tietokoneessa konekäskytasolla? Onko olemassa tietotyyppejä,
joita voidaan käsitellä konekäskytasolla nykyään
käytössä olevilla tietokoneilla mutta ei ttk-91:ssä?
- Millä eri tavoin voidaan muistissa olevaan tietoon viitata ttk-91
tietokoneessa konekäskytasolla?
- Voidaanko samalla konekäskyllä muuttaa sekä rekisterin että
muistin sisältöä? Miten tai miksi ei?
- Kuinka suuri kokonaisluku mahtuu ttk-91 koneen käskyn vakio-osaan? Mitä tehdä jos tarvitaan suurempaa lukua?
- Oletetaan, että ttk-91 rekistereiden lukumäärä olisikin 256 eikä 8. Miten tämä vaikuttaisi konekäskyn rakenteeseen?
- Oletetaan, että ttk-91 arkkitehtuuriin lisätään 46 uutta konekäskyä eri pituisten kokonais- ja liukulukujen, totuusarvojen, merkkien ja merkkijonojen käsittelyyn. Miten tämä vaikuttaisi konekäskyn rakenteeseen?
- Taulukot ja tietueet
- Useimmat ohjelmointikielet toteuttavat 2-ulotteiset taulukot riveittäin. Miksi näin tehtäisiin? Säästetäänkö tällä tavoin muistitilaa? Onko ratkaisu nopeampi kuin sarakettain tallennus? Miksi?
- Oletetaan, että sinulla on 1-ulotteinen taulukko Person, jonka alkiot ovat 5-kenttäisiä tietueita {id, height, weight, grade, level}. Anna ttk-91 konekäskyt, joilla toteutetaan sijoituslause "X = Person[i].grade".
- Anna ttk-91 konekäskyt, joilla toteutetaan sijoituslause "X = T3D[i][j][k]", kun T3D on kolmiulottteinen taulukko, joka on talletettu riveittäin.
- [2 htp] Titokone ja TitoTrainer
- Opettele käyttämään Titokonetta ja TitoTraineria.
- Tee
tason A TitoTrainer tehtävät a-050, a-100, a-110 ja a-150. Halutessasi voit ajaa
tekemäsi (TitoTrainer-tehtävässä määritellyn) ohjelman ensin
Titokoneessa ja sitten vasta
TitoTrainerissa. Tällä tavoin saat parempia virheilmoituksia ja ohjelman kehittäminen on helpompaa. Käytä tarvittaessa omaa opintopiiriä konsultointiapuna,
mutta yritä selvitä tehtävistä itsenäisesti.
- Halutessasi voit samalla kertaa tehdä loputkin tason A TitoTrainer tehtävät
projektia 1 varten.