Ohjelma Mikro-ohjelmointi Symbolinen konekieli Osoitustavat
Mikro-ohjelmointi Mikro-ohjelmoitava tietokone suorittaa päämuistissa olevaa (konekielistä) ohjelmaa Konekäsky suoritetaan suorittamalla käskyä vastaava mikro-ohjelma Mikro-ohjelmoitava koneemme kykenee seuraaviin toimintoihin:
Toiminnot Tiedon siirto rekisterien välillä sekä rekisterin ja päämuistin välillä Yhteen- ja vähennyslasku Kahdella kertominen Loogiset vertailut A<0, A=0 Siirtyminen mikro-ohjelmassa siirtyminen seuraavaan käskyyn ehdollinen ylihyppy (skip) ehdoton hyppy (jump) Tiedon siirto rekisterien välillä sekä rekisterin ja päämuistin välillä. Tietoa ei siis voi siirtää suoraan kahden päämuistin muistipaikan välillä. Rekistereistä tieto voidaan siirtää vain sille väylälle, johon kyseinen rekisteri on kytketty. Yhteen- ja vähennyslasku. On huomattava, että vähennyslaskussa vähentäjä on aina väylällä 1, kone siis osaa esimerkiksi vähennyslaskun A-MDR, mutta ei laskua MDR-A. Kahdella kertominen eli shiftleft-operaatio. Siis vain vasemmalle siirto, ja reunimmainen bitti hukkuu. Loogiset vertailut pienempi kuin ja yhtäsuuri kuin. Vain rekisterille A. Siirtyminen mikro-ohjelmassa. Kontrollin toteuttamiseksi on käytössä: siirtyminen seuraavaan käskyyn ehdollinen ylihyppy (skip) ehdoton hyppy (jump)
Ohjelmointi Periaatteessa tavallista ohjelmointia Jokainen mikrokäsky sisältää 5 alikäskyä Rekisteri kerrallaan väylälle Jokainen mikrokäsky suorittaa haarautumisen tai asetuksen Mikrokäsky esitetään bittijonona, jossa toimintoja vastaavat ohjausbitit ovat 1
Esimerkki Mikro-ohjelma, joka laskee rekisterin D sisällön osoittaman muistipaikan sisällön ykkösbitit rekisteriin C Ratkaisu: Koska vain vasemman puolimmaista bittiä pystytään tutkimaan yksin, täytyy laskenta tehdä siirtämällä lukua aina bitti vasemmalle. Jos luku < 0, niin silloin 1. bitti on 1, muutoin 0
Algoritmi C:= 0 A:= hae(D) WHILE A <> 0 DO IF A < 0 THEN C:= C+1 ENDIF shiftleft(A) ENDWHILE Korvataan aliohjelmat mikrokäskyillä ja silmukat hyppykäskyillä
Algoritmi jatkuu Ehdolliset jump-hypyt pois, korvataan ehdollisilla ylihypyillä ja ehdottomilla hypyillä
Algoritmi jatkuu
Symbolinen mikrokoodi
Mikrokoodi osoite 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Konekieli
Konekieli Yksi kertolasku vaatii jo monta mikrokäskyä → ohjelmien kirjoittaminen työlästä Konekieli yhdistää mikrokäskyjä Konekielikoneen rakenne: Päämuisti Rekisterit PC IR ACC
Yksiosoitekone Käskyt 16-bittisiä Kone suorittaa käskyjä yksi kerrallaan, peräkkäin Toinen operandi aina akku Ohjelma ja data päämuistissa
Konekäskyt
Eksponenttifunktio 2n Ohjelma muistipaikasta 371 alkaen Data muistipaikoissa 381-383 Algoritmi: MODULE exp(n) RETURNS 2n arvo:=1 WHILE n>0 DO n:=n-1 arvo:=arvo+arvo ENDWHILE RETURN arvo ENDMODULE
2n konekielellä 371 LOAD 383 372 STORE 382 373 LOAD 381 374 JUMPZERO 384 375 SUBTRACT 383 376 STORE 381 377 LOAD 382 378 ADD 382 379 STORE 382 380 JUMP 373 381 n 382 0 383 1
Osoitustavoista Osoitustapa: tapa, millä konekielen käskyn osoiteosa määrää käskyn todellisen operandin Osoitustavat: Välitön osoitus Suora osoitus Epäsuora osoitus Indeksoitu osoitus Epäsuora indeksoitu osoitus