ORT2/K3 Februar 2024
- Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Februarski rok 2024 održan je 10.02.2024.
Postavka
[30 poena]
Posmatra se deo računara koji čine memorija i procesor. Memorija je kapaciteta 2^16 bajtova. Širina memorijske reči je 1 bajt. Procesor je sa jednoadresnim formatom instrukcija. Podaci i adrese su dužine 2 bajta i zauzimaju dve susedne memorijske lokacije, pri čemu se mlađi bajt nalazi na nižoj, a
stariji bajt na višoj adresi.
U procesoru postoji registar programskog brojača RS dužine 2 bajt, adresni registar memorije MAR
dužine 2 bajt, prihvatni registar podatka memorije MDR dužine 2 bajta, prihvatni registar
instrukcije IR dužine 4 bajta, akumulator A dužine 2 bajta, prihvatni registar podatka V dužine 2
bajta, registri opšte namene RO do R15 dužine 2 bajta, programska statusna reč PSW dužine bajt,
ukazivač na vrh steka SR dužine 2 bajt. Instrukcije su dužine 1,2, 3 ili 4 bajta.
Instrukcije skoka su instrukcija uslovnog skoka ukoliko je rezultat negativan (VN) i instrukcija
uslovnog skoka ukoliko nije došlo do prekoračenja (BNV). Bitovi IR31.28 imaju vrednost 0000 za
instrukcije skoka. Instrukcije uslovnog skoka realizuju se kao relativni skok u odnosu na trenutnu
vrednost programskog brojača RS. Bitovi IR31.24 predstavljaju kod operacije i redom su 00000000 i
00000001 za instrukcije VN i VNV. Bitovi ІR23.16 predstavljaju pomeraj koji je 8-bitna celobrojna
veličina sa znakom. Instrukcija je dužine 2 bajta.
Bezadresne instrukcije su instrukcija stavljanja sadržaja akumulatora na stek (PUSH), punjenja
akumulatora sadržajem sa steka (ROR) i aritmetičkog pomeranja akumulatora udesno zajedno mecto (ASR).
Bitovi IR31.28 imaju vrednost 0001 za bezadresne instrukcije. Bitovi IR27.24 označavaju redni broj
instrukcije. Bitovi ІR31.24 predstavljaju kod operacije i redom su 00010000, 00010001 i 00010010 za
instrukcije PUSH, POP u ASR. Instrukcije su dužine 1 bajt.
Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija prenosa iz akumulatora
(ST), aritmetička instrukcija oduzimanja (SUB), logička instrukcija logičkog
proizvoda (AND) i instrukcija bezuslovnog skoka (JMP).
U slučaju da se naiđe na kombinaciju operacija sa nekim
adresiranjem sa kojim ta operacija ne može da se izvrši, takve instrukcije treba da budu bez dejstva.
Bitovi IR31.28 imaju vrednost 0010 za adresne instrukcije. Bitovi ІR27.24 predstavljaju kod operacije i
redom su 0000, 0001, 0010, 0011 i 0100 za instrukcije LD, ST, SUB, AND i JMR. Dužina instrukcije
zavisi od načina adresiranja.
Načini adresiranja su registarsko direktno adresiranje (regdir), memorijsko indirektno adresiranje
(memind), registarsko indirektno sa pomerajem adresiranje (regindpom) i neposredno adresiranje
(immed). Bitovi ІR23.20 predstavljaju način adresiranja i redom su 0000, 0001, 0010 i 0011
za adresiranja
regdir, memind, regindpom i immed. Kod registarskih adresiranja bitovi IR19.16 se koriste za adresiranje
jednog od registara opšte namene R0 do R15, dok se kod ostalih načina adresiranja ovi bitovi ne koriste. Kod adresiranja sa pomerajem bitovi IR15.8 predstavljaju pomeraj koji je 8-bitna islobrojna veličina sa znakom.
Kod memorijskih adresiranja bitovi IR15.0 predstavljaju adresu memorijske lokacije. Kod neposrednog adresiranja bitovi IR15.0 opredstavljaju 16 bitni podatak. Instrukcije su dužine 1,2, 3 ili 4 bajta .
Stek raste prema višim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu memorijsku
lokaciju
a) Projektovati deo operacione jedinice procesora (FETSH + ADDR + EHEC) koja je potrebna da izvrše sledeće instrukcije: ST (1000), ST (2)13h, PUSH i AND R2. Potrebno je nacrtati samo jednu
operacionu jedinicu koja može, da, izvrši sve spomenute instrukcije.
b) Dati su početni sadržaji registara i indikatora: PC = 1000h, SP = 0002h, A = FFFFh, R0 = 0100h, R1 = 1018h, R2= 101Ah, N = 0, Z = 0, V = 0, C = 0.
| LOKACIJA | 0000 | 0001 | 0002 | 0003 | 0004 | 0005 | 0006 | 0007 | 0008 | 0009 |
|---|---|---|---|---|---|---|---|---|---|---|
| VREDNOST | FE | FF | 00 | C1 | 21 | 77 | 11 | 00 | 0A | 83 |
| LOKACIJA | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
| VREDNOST | 20 | 30 | 00 | 85 | 22 | 33 | 02 | 01 | 02 | 23 |
| LOKACIJA | 100A | 100B | 100C | 100D | 100E | 100F | 1010 | 1011 | 1012 | 1013 |
| VREDNOST | 00 | 00 | 03 | 11 | 12 | 10 | 21 | 10 | 1C | 10 |
| LOKACIJA | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 101A | 101B | 101C | 101D |
| VREDNOST | 24 | 10 | 18 | 10 | 00 | 10 | 00 | 02 | 00 | 06 |