06.04.2015 Views

Osnovi programiranja i programski jezici

Osnovi programiranja i programski jezici

Osnovi programiranja i programski jezici

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Adresibilni memorijski prostor se sastoji od 1 M bajta direktno adresabilnih lokacija.<br />

Budući da mikroprocesor I8086 ima 16-bitnu aritmetičku jedinicu rukuje sa<br />

šesnaestobitnim podacima, potreban je dodatni mehanizam za izračunavanje adresa u 1<br />

M bajtu memorijskog prostora. Memorija mikroračunara na osnovi I8086 podeljena je<br />

na segmente, od kojih svaki ima maksumalnu veličinu od 64 k bajta. Svaki segment<br />

započinje na adresi koja je deljiva sa šesnaest. U svakom trenutku sadržaji četiri takvih<br />

segmenata su direktno adresibilni. Segmenti se mogu prekrivati. Ti segmenti su:<br />

• CS – tekući kodni segment,<br />

• DS – tekući segment podataka,<br />

• SS – tekući segment stack-a i<br />

• ES – posebni segment.<br />

Šesnaest značajnijih bitova adrese svakog tekućeg segmenta sadržani su u 16-bitnim<br />

segmentima-registrima, koji su elementi jedinice BIU. Slika 10 prikazuje generisanje<br />

adrese uz pomoć segmentnog registra. Na primer, sadržaj kodnog registra CS određuje<br />

tekući kodni segment, adresa instrukcije je relativna u odnosu na sadržaj CS i sadržaj<br />

IP (brojač instrukcije), koji je pomak u odnosu na CS.<br />

Slika 10.: Generisanje adresa uz pomoć segmentnog registra<br />

Dvadesetobitna fizička adresa dobijena je<br />

sabiranjem šesnaestobitne adrese pomaka i<br />

šesnaestobitne adrese segmenta sa 4<br />

pridodana najmanje značajna bita koja su<br />

jednaka nuli. Funkcije segmentnih registara<br />

u jedinici BIU su sledeće: sadržaj registra<br />

CS definiše tekući kodni segment. Sve<br />

instrukcije se čitaju u odnosu na CS, a<br />

sadržaj pokazivača instrukcije IP<br />

(Instruction Pointer) služi kao ofset. Sadržaj<br />

registra DS definiše tekući segment<br />

podataka. Svako pozivanje podataka<br />

relativan je u odnosu na sadržaj registra DS,<br />

Stog (stack):<br />

1.LIFO stog. Linearna lista u kojoj<br />

se svi pristupi, umetanja i<br />

odstranjenja odvijaju na jednom<br />

kraju liste, koji se zove vrh (top). To<br />

podrazumeva pristup na bazi<br />

poslednji unutra – prvi napolje:<br />

element koji je poslednji umetnut u<br />

listu, prvi će biti odstranjen.<br />

2. FIFO stog. Kada je prvi umetnuti<br />

element u linearnu listu ujedno i<br />

prvi element koji se odstranjuje, reč<br />

je o potisnom stogu, poznatijem kao<br />

red čekanja.<br />

69

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!