ORT2/K3 Februar 2024

Izvor: SI Wiki
< ОРТ2
Datum izmene: 11. februar 2024. u 23:10; autor: Matijalekovic (razgovor | doprinosi) (Нова страница: {{tocright}} {{нерешено}}<!-- Ово ставити уколико НИЈЕДАН задатак није решен, док уколико само неки задаци нису решени на првом месту у њиховој секцији поставити {{делимично решено}}. Уколико се користи било који од ова два шаблона, ОБАВЕЗНО проверити да ли постоји и…)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu
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.

Sadržaj dela memorije iz postavke zadatka
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