En ef þjöppunin þjappaði aðeins niður í 2/3 af upphaflegri stærð?
4. [10%] Útskýrið nákvæmlega hvað gerist í 8086-forritsbútinum
að neðan.
xor bx, bx
aftur: add bl, al
adc bh, 0
inc byte ptr [cs:smb + 1]
smb: cmp al, 0
ja aftur
5. [25%] Hér að neðan er fall sem reiknar út heiltöluveldi
í sem fæstum margföldunum.
fall veldi(heiltala b, heiltala e)
ef e = 0 þá
skila 1
ef e = 1 þá
skila b
ef (e mod 2) = 0 þá
skila veldi(b, (e div 2))
annars
skila (veldi(b, (e div 2)))*b
endir
endir
Skrifið veldi sem endurkvæmt fall sem hægt er að kalla á úr
Borland C++. Setjið það upp þannig að það sé á forminu:
unsigned int veldi( unsigned short b, unsigned short e);
Fallið þarf líka að passa að ekki verði yfirflæði (overflow), en þá
á að skila 0 og hætta.
6. [10%] Tölvur eru annað hvort "big-endian"
eða "little-endian" eftir því í hvaða röð innan orðs
bætin eru. Little-endian tölvur, eins og 8086, geyma lægra bætið fremst,
en big-endian tölvur, eins og 68000, geyma hærra bætið fremst. Nú eru að
koma á markað tölvur sem eru "bi-endian", því hægt er að skipta
um "endianess" á þeim. Einn biti í stöðugistinu segir til um
það hvaða röð á að nota. Lýsið nákvæmlega hvernig þessar tölvur geta
farið að því að breyta um "endianess" og sýnið dæmi,
bæði um tveggja bæta orð og fjögurra bæta orð.
7. [10%] Þýðið eftirfarandi forritsbút yfir í HP PA-RISC smalamál.
Gerið ráð fyrir að breyturnar séu í gistum.
if (a == b)
c++
else
d += 4;
Til að fá alla 10 punktana fyrir dæmið má smalamálsforritið aðeins
vera þrjár skipanir. Þið fáið 5 punkta ef notaðar eru fjórar skipanir
og síðan færri punkta ef fleiri skipanir eru notaðar.
8. [15%] Við skulum líta á nýja aðferð við að ákvarða
hvaða síðu á að henda út í sýndarminni. Aðferðin gæti kallast Víxlun,
og felst í því að síðunum er haldið í röð og í hvert sinn sem vísað er í
síðu x þá færist hún fram um eitt sæti í röðinni (þ.e., henni er
víxlað við síðuna sem er á undan í röðinni). Þegar henda þarf út síðu er
valin sú síða sem er aftast í röðinni. Nýja síðan kemur síðan inn aftast
í röðina (næst aftast ef vísað er í hana í leiðinni).
a) Útskýrið nákvæmlega uppsetningu á þessari aðferð.
b) Berið aðferðina saman við LRU, FIFO og NRU. Ræðið kosti
og galla. Hefur Víxlunaraðferðin einhverja augljósa galla?
c) Sýnið hvernig hægt væri að setja upp nálgun á Víxlunaraðferðinni
á 486 gjörvanum með því að nota eingöngu það minni sem til staðar er í
síðutöflum (og töfluskránni).