in English suomeksi  Harjoitukset

Tietokoneen toiminta, syksy 2005, HT 3

Nämä tehtävät käsitellään harjoituksissa viikolla 47 (21.-25.11.2005).
  1. [2 htp] Täydennä (esimerkkihakemistossa olevaa) ohjelmaa lh_kutsu.k91 toteuttamalla aliohjelma SUBR(X, A, B), joka tulosparametrin X arvoksi arvoparametrien A ja B erotuksen. X välitetään viiteparametrina.

    Tarkista ohjelmasi toimivuus kääntämällä ja suorittamalla se Titokoneen avulla.
     

  2. [2 htp] Tiedon esitys.
    1. Mikä on desimaalijärjestelmän luvun 43.234 binääriesitys?
    2. Mitä desimaalijärjestelmän lukua binääriluku 101010.1010 vastaa?
    3. Mikä on desimaalilukujen +23 ja -75 esitys seuraavissa 16 bitin Big-Endian esitysmuodoissa:
      1. etumerkillinen (sign and magnitude)
      2. kahden komplementti (two's complement)
      3. yhden komplementti (one's complement)
      4. 32767 vakiolisäys (biased by 32767)
    4. Mikä on desimaaliluvun 33.125 IEEE liukulukustandardin mukainen esitys?
    5. Oletetaan, että ohjelmointikielessä MyLan on totuusarvo (boolean) ja liukuluku tietotyypit. Esimerkiksi, MyLan ohjelmissa voidaan käyttää boolean tai float tyyppisiä muuttujia.

      Ttk-91 koneessa ei kuitenkaan ole tällaisia tietotyyppejä. Voisiko MyLan kielelle tehdä kääntäjän, jonka avulla MyLan kielisiä ohjelmia voisi suorittaa ttk-91 koneessa? Jos voi, niin miten? Jos ei voi, niin miksi ei?
       

  3. [3 htp] Henkilörekisterin tietuetyyppi on määritelty pseudokäskyillä  
    	; 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 alustettuna ja tietue Maija on varattu muistista alustamattonana pseudokäskyillä

    	Pekka   DC   3214  ; ID     =  3214
            P1      DC     35   ; AGE    =    35
            P2      DC  12345   ; SALARY = 12345
            Jussi   DC   8888
            J1      DC     54
            J2      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)". Osoitteet P1, P2, J1 ja J2 ovat esimerkissä mukana, koska Titokone ei pysty käsittelemään osoitteettomia DC-käskyjä.

    Tee ttk-91 koneen symbolisella konekielellä ohjelma, joka

    1. Tulostaa R1:n osoittaman henkilön kaikkien kenttien arvot, kun R1 on ensin alustettu osoittamaan Jussin tietoja konekäskyllä "LOAD   R1, =Jussi".
    2. Asettaa Maijan id:ksi 6666, iäksi 32, ja palkaksi saman kuin mitä Jussilla tällä hetkellä on.
    3. Tulostaa Pekan, Jussin ja Maijan palkkojen summan.
    4. Tulostaa näistä kolmesta tällä hetkellä nuorimman henkilön iän.

    Tarkista ohjelmasi toimivuus kääntämällä ja suorittamalla se Titokoneen avulla.

    Noudata aliohjelmien ja funktioiden toteutuksessa luennolla esitettyä tapaa aktivointitietueen rakentamiseen ja purkamiseen. Huolehdi, että kaikkien työrekistereiden (R0-R5) arvot ovat samat aliohjelmasta tai funktiosta palatessa kuin ne olivat kutsuhetkellä.


Teemu Kerola