Opintopiirin keskustelutehtävä

Opintopiirin keskustelutehtävä KT 3
(LH 9 kirjanpidossa)

Study Circle Discussion Problem KT 3
(LH 9 in bookkeeping)

Keskustelu käydään CSMoodlen opintopiirikohtaisessa keskusteluryhmässä. Tämä keskusteluryhmä on tarkoitettu ainoastaan keskustelutehtävän keskusteluun. Keskusteluun voivat osallistua vain opintopiirin jäsenet ja se näkyy vain tälle opintopiirille. Tämä keskustelu arvioidaan 10.2.2006 klo 18:00 mennessä käydyn keskustelun perusteella.

Discussion is taking place in the private Study Circle discussion room. This discussion room is intended only to discuss this specific problem. Discussion is open only to the Study Circle members. This discussion is evaluated based on comments given by 10.2.2006 at 18:00.

Keskustelun aihepiiri - Discussion Topic

Konekäskyn osoiteosa

Ttk-91 koneen konekäskyn osoiteosa on vain 16-bittinen. Tämä asettaa rajoituksia käskyssä olevien vakioiden koolle.

Mikä on suurin positiivinen luku, joka voidaan esittää käskyssä vakiona? Miten tulee toimia, jos tarvitaankin suurempaa vakiota? Esimerkiksi lukua 6543210?

Mikä on pienin negatiivinen luku, joka voidaan esittää käskyssä vakiona?

Entä miten tulisi menetellä, jos tarvitaan suurta vakiota indeksoidun osoitusmoodin kanssa? Esimerkiksi, jos halutaan lukea data osoitteesta (R1)+666666?

Kuka päättää, missä C-kielisessä olevassa ohjelmassa oleva vakio (esim. luku 7 lauseessa X += 7; ) sijoitetaan suoritusaikana? Mitä etua/haittaa tästä on?

Mitä haittaa on varata jokin rekisteri koko ajan tarvittavaa vakiota (esim. luku 1) varten?

Mitä hyötyä/haittaa on tallettaa usein tarvittavaa vakio (esim. luku 1) literaalialueelle (data-alueelle)?

Machine instruction address field

The address field of ttk-91 machine instruction has only 16 bits. This limits the size of constants used in instructions.

What is the largest positive number that can be given as constant in an instruction? What should be done, if a larger constant is needed? For example, number 6543210?

What is the smallest negative number that can be given as constant in an instruction?

And what should you do, if you need a large constant with indexed address mode? For example, you need to read the value from (R1)+666666?

Who decides, where a constant (e.g., number 7 in statement X += 7;) in a C-program is located at execution time? What advantages/disadvantages this causes?

What disadvantages will it bring to reserve a register for some often used constant (e.g., number 1)?

What advantages/disadvantages will it bring to place some often used constant (e.g., number 1) to literal area (data area)?