1.
a) Simuloi alla olevan ohjelman toimintaa. Mitä ohjelma tulostaa,
jos annat syötteeksi syntymäkuukautesi järjestysnumeron? Entä mitä
tapahtuu, jos annat syötteeksi negatiivisen luvun?
Alku LOAD R1,=0 STORE R1,15 IN R2,=KBD STORE R2,14 LOAD R3,15 ADD R3,14 STORE R3,15 LOAD R4,14 SUB R4,=1 STORE R4,14 JPOS R4,4 LOAD R5,15 OUT R5,=CRT Loppu SVC SP,=HALTb) Ohjelmassa on laskettu ihan itse muuttujille osoitteet. Se voidaan kuitenkin jättää kääntäjän murheeksi. Muuta koodia siten, että siitä tulee 'luettavampi' ja siihen on jälkikäteen helpompaa lisätä uusia käskyjä.
2. a) Mitä seuraavat käskyt tekevät? Olkoon symbolin jatko arvo 100 ja symbolin a arvo 120. Rekisterissä R2 on 20.
IN R1,=KBD MUL R1,=7 STORE R1,a JUMP @jatko(R2)
b) Eräiden rekisterien ja muistipaikkojen sisältö on seuraava:
R1: 0, R2: 10, R3: 100 MP 100: 200, MP 110: 300, MP 200: 400, MP 300: 500, MP 400: 400Mikä on R1:n sisältö seuraavien käskyn jälkeen? Oletetaan, että käskyt suoritetaan annetussa järjestyksessä.
1) LOAD R1, 100(R2) 2) LOAD R1, =100(R3) 3) LOAD R1, @R3 4) LOAD R1, R3 5) LOAD R1, @100(R2) 6) LOAD R1, @400(R1)
3. Kurssilla on sata oppilasta. Peräkkäisissä muistipaikoissa 100, ..., 199 on kunkin oppilaan pistemäärät. Kirjoita symbolisella konekielellä ohjelma, joka tulostaa oppilaiden pistemäärien keskiarvon.
4. Laadi symbolisella konekielellä ohjelma, joka lukee käyttäjän syöttämän positiivisen kokonaisluvun ja tulostaa sen kertoman. (Positiivisen kokonaisluvun kertomahan on sen ja sitä pienempien mutta nollaa suurempien kokonaislukujen tulo. Esim. viiden kertoma on 5*4*3*2*1 eli 120.)
5. Nämä muistista löytyneet bittijonot on esitetty tässä heksadesimaalijärjestelmän lukuina.
01 A0 00 A0 18 47 00 01 13 31 FF FF 02 80 FF FEEsitä vastaavat käskyt TTK-91 symbolisella konekielellä (vihje: muunna ensin bittimuotoon). Mitä käskyt tekevät?
6.
a) Tutustu Koksi-simulaattoriin. Voit imuroida simulaattorin
kurssin kotisivulta ja asentaa sen koneellesi tai kokeilla sitä laitoksen koneissa.
Koksi löytyy ainakin salin D427 koneista Windows-käyttöjärjestelmän File
Managerista G-levyltä. Testaa Koksilla tekemiäsi konekielisisiä ohjelmia.
b) Miten alkaisit itse toteuttaa Koksin kaltaista simulaattoria? Riittää
kun lyhyesti selostat ohjelman toimintaideaa hyvin yleisellä tasolla ja
kerrot jotain kaikkein keskeisimmistä tietorakenteista.