Tietokoneen toiminta, kesä 2000
Harjoitus 3
Käsitellään harjoitusryhmissä tiistaina 15.8.2000.
-
Vastaa seuraaviin kysymyksiin:
- Mihin ympäristöosoitinta FP käytetään? Miksi sitä tarvitaan?
- Miten pinoa käytetään aliohjelmien yhteydessä? Millä muulla tavalla parametrit voisi välittää?
- Mitä toimintoja on suoritettava aliohjelmaan siirryttäessä?
- Mitkä näistä toiminnoista suoritetaan CALL- ja EXIT-käskyjen yhteydessä?
- Mitä eroavat toisistaan arvo- ja viiteparametri sekä funktio ja proseduuri? Mitä tarkoitetaan
metodilla?
-
Ttk-91 koneen konekäskyn osoiteosa on vain 16-bittinen. Tämä asettaa rajoituksia käskyssä olevien
vakioiden koolle.
- Mikä on suurin positiivinen luku, joka voidaan esittää käskyssä vakiona?
- Mikä on pienin negatiivinen luku, joka voidaan esittää käskyssä vakiona?
- Miten tulee toimia, jos tarvitaankin suurempaa vakiota? Esimerkiksi lukua 500000?
- Entä miten tulisi menetellä, jos tarvitaan suurta vakiota indeksoidun
osoitusmoodin kanssa?
Esimerkiksi, jos halutaan lukea data osoitteesta (R1)+666666?
- Laadi symbolisella konekielellä pääohjelma ja aliohjelma Vaihda(X,Y). Aliohjelma vaihtaa X:n ja Y:n arvon:
APU = X;
X = Y;
Y = APU;
Välitä parametrit pinossa. Pääohjelma kutsuu aliohjelmaa viiteparametreilla Vaihda(A,B) ja A:ssa on arvona
5 ja B:ssä arvona 7.
-
Laadi funktio, joka laskee lausekkeen 2x**n +c arvon, kun n>0. Laadi myös
pääohjelma, joka kutsuu aliohjelmaa kahdesti arvoilla
(x=10, n=2 ja c= 4) ja (x=5, n=4ja c=3). Kummallakin kerralla
funktion palauttama arvo tulostetaan. Käytä pinoa
parametrien ja paluuarvon talletuksen. Esitä
pinon rakenne kutsun jälkeen ja aliohjelmasta paluun jälkeen.
-
Tee aliohjelma Kopioi, joka kopioi muistialueelta Lahde muistialueelle Kohde n:n muistipaikan sisällön.
Välitä parametrit Lahde, Kohde ja n pinossa. Laadi lisäksi pääohjelma, joka kopioi 100 muistipaikan sisällön
muistialueelta Vanha alueelle Uusi.
-
Laadi symbolisella konekielellä ohjelma, joka koostuu pääohjelmasta ja funktiosta KArvo. Funktio KArvo
saa parametrikseen taulukon ensimmäisen muistipaikan osoitteen ja peräkkäisiin muistipaikkoihin tallennetun
taulukon koon. Se palauttaa kutsujalle taulukon lukujen keskiarvon. Pääohjelmassa varataan tilaa taulukolle
100 muistipaikkaa, luetaan näppäimistöltä taulukon koko (jonka pitää olla pienempi kuin 100), ja tämän
jälkeen luetaan näppäimistöltä taulukon alkiot. Lopuksi tulostetaan lukujen keskiarvo (funktion KArvo avulla
laskettuna).