-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtitokone-korjaukset.txt
68 lines (46 loc) · 2.32 KB
/
titokone-korjaukset.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Koskelo-ryhmän tekemät muutokset Titokoneeseen
1. Johdanto
Ohjelmistotuotantoprojekti "Koski"
(http://www.cs.helsinki.fi/group/koski/) tuotti Tietokoneen toiminta
-kurssia varten uuden TTK-91 konekielisimulaattorin,
Titokoneen. Ohjelmasta on paljastunut muutamia puutteita ja/tai
eroavaisuuksia vanhaan Auvo Häkkisen Koksi-ohjelmaan verrattuna. Muun
työnsä ohessa projektiryhmä "Koskelo"
(http://www.cs.helsinki.fi/group/koskelo/) korjasi näitä puutteita ja
muutenkin teki Titokoneeseen muutoksia. Muutoksista lyhyesti tässä
tekstissä.
2. Korjatut bugit/puutteet
2.1 NOT-käskyn toteutus
Alkuperäisen Koksi-ohjelman tuntema käsky 'NOT' puuttui
Titokoneesta. Not käsky lisättiin käskykoodilla 27.
2.2 SHRA-käskyn siirto toiselle käskykoodille
Titokoneen yhteydessä esitelty uusi käsky SHRA siirrettiin, koska
se käytti NOT-käskylle varattua käskykoodia. SHRA-käskyn uusi koodi
on 28.
2.3 LOAD ja STORE -käskyjen toiminta
Kaikki Koksin tukemat tavat käyttää LOAD ja STORE -käskyjä eivät toimineet
Titokoneessa. LOAD R1, (R2) ei toiminut. STORE R1, @R2 ei toiminut eikä
tietenkään myöskään STORE R1, (R2). Pystyi kiertämään käyttämällä
STORE R1, 0(R2).
Nyt käskyt LOAD/STORE R1, (R2) toimivat. Korjaus tapahtui lisäämäällä 0 ennen
alkavaa sulkua. STORE R1, @R2 toimii, korjaaminen tapahtui sallimalla
@-osoitusmoodin käyttö STORE käskyn yhteydessä.
3. Lisätyt ominaisuudet
Koskelo-ryhmä lisäsi Titokoneeseen muutamia
ominaisuuksia. Tarkoituksena oli parantaa mahdollisuuksia saada
tietoa Titokoneen toiminnasta varsinkin ulkoisen rajapinnan läpi
käytettynä.
3.1 Käskylaskuri
Lisätty Titokoneeseen käskylaskuri, jolla saadaan tieto suoritettujen
konekäskyjen määrästä. Lisätty metodi on nimeltään GiveCommAmount().
3.2 Pinon kokomittari
Lisätty Titokoneeseen toiminto, jolla saadaan tieto pinon
lopullisesta koosta. Lisätty metodi on nimeltään GiveStackSize().
3.3 Koodisegmentin koko
Lisätty Titokoneeseen toiminto, jolla saadaan tieto ajettavana olevan
ohjelman lopullistesta koodisegmentin koosta. Lisätty metodi on nimeltään
getCodeAreaSize().
3.4 Datasegmentin koko
Lisätty Titokoneeseen toiminto, jolla saadaan tieto ajettavana olevan
ohjelman lopullistesta datasegmentin koosta. Lisätty metodi on nimeltään
getDataAreaSize().