Tietokoneen toiminta, Kevät 2011, Harjoitus 2
Nämä tehtävät tehdään etukäteen ja käsitellään harjoituksissa 2. kurssiviikolla 24.1. - 28.1.2011.
Harjoitukset pohjautuvat verkkoluentoihin 1,
2 ja
3.
Tehtävä 4 edellyttää ainakin TitoTrainer2 järjestelmän käyttöä. Titokoneen asentaminen voi auttaa toiminnan hahmottamisessa ja helpottaa myös konekielen oppimista.
HUOM: Tehtävän yksi kohdassa e) on pieni muutos!
Tehtävät:
- Muistin osoitusmuodot.
Oletetaan, että kukin käsky suoritetaan oheisten taulukoiden kuvaamasta tilanteesta
alkaen. 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.
Rekisterit |
|
Muistialue |
|
Symbolitaulu |
Symbolitaulu, muistialue ja rekisterit
R0 |
104 |
|
0 |
|
|
Tbl |
200 |
R1 |
10 |
|
... |
|
|
X |
10 |
R2 |
201 |
|
10 |
200 |
|
One |
1 |
R3 |
200 |
|
11 |
300 |
|
|
|
R4 |
11 |
|
... |
|
|
|
|
R5 |
0 |
|
200 |
3000 |
|
|
|
SP=R6 |
|
|
201 |
10 |
|
|
|
FP=R7 |
|
|
... |
|
|
|
|
|
|
|
LIMIT |
|
|
|
|
- LOAD R4, 200
- LOAD R3, One(R1)
- LOAD R3, =One(R1)
- STORE R0, One(R1)
- STORE R2, @1(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 sarakkeittain 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.
Tiina.Niklander@cs.helsinki.fi