Varaudu esittämään kaikki koksiin liittyvät tehtävät mikrotietokoneella harjoitustilaisuudessa. Tallenna siksi ratkaisusi joko levykkeelle tai fs-verkkolevylle. Ota mukaan myös tuloste ratkaisuistasi.
Tee TTK-91 koneen symbolisella konekielellä n:nnen Fibonacci-luvun laskeva ohjelma, joka voisi olla käännös C ohjelmasta
int n, i, prev, fib, next; /* variables n, i, prev, fib, next */ main () { /* main program */ scanf ("%d", &n); /* read an integer into n */ i = 1; prev = 0; fib = 1; while (i < n) { next = prev+fib; prev = fib; fib = next; i++; } printf ( "%d %d \n", n, fib); /* print n, fib */ } /* scanf-komento vain lukee yhden kokonaisluvun ja printf komento tulostaa kaksi kokonaislukua */
Voit pitää muuttujien arvoja joko muistissa tai rekistereissä.
Palautusta varten sinulla täytyy olla palautettava tehtävä tekstitiedostossa. Palauta siis se sama tiedosto, jota käytit koksi-simulaattorin kanssa. Lisäksi sinun täytyy tietää minkä ryhmän harjoituksiin osallistut.
Palautus pitää tehdä viimeistään 24 tuntia ennen ryhmän alkua. Myöhemmin palautus ei ole mahdollista eikä myöhästyneistä palautusyrityksiä oteta huomioon.
Oletetaan, että meillä on korkean tason kielellä (C, Java, Pascal) tehty ohjelma Simple, joka on käännetty TTK-91 -koneen konekielelle.
Mitkä ohjelman Simple tiedot (esim. muuttujien arvot) on järkevää tai hyödyllistä pitää ...
d-kohta ei ole kompakysymys.
Tee TTK-91 -koneen symbolisella konekielellä ohjelma, joka tekee saman kuin C ohjelma
int x=7, y=33, z=5; /* variables x, y, z */ main () { /* main program */ y = 4; x = 52 - y * z; if (x < 40) { y = x - 34; } else { y = x / y + 4; z = 23; } printf ( "%d %d %d \n", x, y, z) /* print x, y, z */ } /* printf -komento vain tulostaa kaikki kolme kokonaislukua peräkkäin samalla kertaa */
Ohjelmassa käytetyt vakiot (esim. luku MAXID=78) voivat sijaita useassa eri paikassa ohjelman suorituksen aikana. Anna TTK-91 -koneen symbolisella konekielellä konekieliset käskyt, joilla rekisterin R1 arvoon lisätään vakion MAXID arvo (78), joka otetaan käyttöön
Anna esimerkki tilanteesta, jossa tapa (a) olisi sopivin. Vastaavasti tapauksille b ja c. Perustele esimerkkisi.
# record person: 3 integer fields Id EQU 0 # relative address within record Age EQU 1 Salary EQU 2
Tietueet Pekka ja Jussi on varattu muistista alustettuina ja
tietue Maija on varattu muistista alustamattomana pseudokäskyillä
Pekka DC 3214 # ID = 3214 DC 35 # AGE = 35 DC 12345 # SALARY = 12345 Jussi DC 8888 DC 54 DC 14321 Maija DS 3 # initial values not defined
Esimerkki: Jos R4 osoittaa tietueen Pekka alkuun, niin Pekan palkka saadaan rekisteriin R5 konekäskyllä "LOAD R5, Salary(R4)".
Tee TTK-91 -koneen symbolisella konekielellä ohjelma, joka