ORT2/K3 Januar 2024

Izvor: SI Wiki
< ОРТ2
Datum izmene: 9. februar 2024. u 21:08; autor: Bogdan (razgovor | doprinosi) (→‎Решење)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

K3 održan je 20.01.2024. u januarskom roku Zbog izmena programa predmeta nije bilo moguće da se radi i K2 i K3 integralno, već se birao jedan od ta dva.

Posmatra se deo računara koji čine memorija i i procesor. Memorija je kapaciteta 2^16 bajtova. Širina memorijske reči je 1 bajt. Procesor je sa jednoadresnim formatom instrukcija. Podaci su dužine 1 bajt. Adrese su dužine 2 bajta i zauzimaju dve susedne memorijske lokacije, pri čemu se mlađi bajt nalazi na višoj, a stariji bajt na niž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 MR 1 bajt, prihvatni registar instrukcije IR dužine 3 bajta, akumulator A dužine 1 bajta, prihvatni registar podatka V dužine 1 bajta, registri opšte namene RO, R1 do R15 dužine 2 bajta, programska statusna reč PSW dužine 1 bajt, ukazivač na na vrh steka SR dužine 2 bajt. Instrukcije su dužine 1, 2 ili 3 bajta.

Instrukcija skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (VZ). BItovi IR23.20 imaju vrednost 0000 za instrukcije skoka, Instrukiija BZ realizuje, se kao relativni skok u odnosu na trenutnu vrednost programskog brojača PC. Bitovi IR23.16 predstavljajut kod operacije koji je 00000000 za instrukciju BZ. Bitovi IR15.8 predstavljaju pomeraj koji Je 8-bitna celobrojna veličina sa znakom. Instrukcija je dužine 2 bajt.

Bezadresne instrukcije su instrukcija stavljanja sadržaja akumulatora na stek (PUSN), punjenja akumulatora sadržajem sa steka (ROR), dekrementiranja akumulatora (DES) i povratka iz potprograma (RTS). Bitovi IR23.20 imaju vrednost 0001 za bezadresne instrukcije. Bitovi IR19.16 označavaju redni broj instrukcije. Bitovi IR23.16 predstavljaju kod operacije i redom su 00010000, 00010001, 00010010, 00010011 za instrukcije PUSH, POP, DEC u RTS. Instrukcije su dužine 1 bajt.

Adresne instrukcije su instrukcija prenosa U akumulator (LD) instrukcija prenosa iz akumulatora (ST), aritmetička instrukcija sabiranja (ADD), instrukcija aritmetičkog pomeranja ulevo za jedno mesto (ASL) i instrukcija bezuslovnog skoka na sračunatu adresu potprograma (JSR). 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. Instrukcija ASL rezultat pomeranja smešta u registar A Bitovi PR23.20 predstavljaju kod operacije i redom su 0010, 0011, 0100, 0101 i 0110 za instrukcije LD, ST, ADD, ASL i JSR, Dužina instrukcija zavisi od načina adresiranja.

Načini adresiranja su registarsko direktno adresiranje (regdir), memorijsko direktno adresiranje (memdir), registarsko indirektno sa preinkrementiranjem adresiranje (preipsg) i neposredno adresiranje (immed). Bitovi IRi9.1 predstavljaju način adresiranja i redom su 0000, 0001, 0010 i 0011 za adresiranja regdir, memdir, preincr i immed. Kod registarskih adresiranja bitovi IR15.12 se koriste za adresiranje jednog od registara opšte namene R0 do R15, dok se bitovi IR11.8 ne koriste. Dužina instrukcije je 2 bajta. Kod memorijskih adresiranja bitovi IR15.0 predstavljaju adresu memorijske lokacije. Dužina instrukcije je Z bajta. Kod neposrednog adresiranja bitovi IR15.8 predstavljaju 8 bitni podatak. Dužina instrukcije je 2 bajta vatm loaiіama Stek raste prema višim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu memorijsku lokaciju.

K3 [30]

Smatrati da su registri RO-R15 smešteni u registarski fajl. a) Projektovati deo operacione jedinice procesora (FETSN + ADDR + EHES) koja je potrebna da se izvrše sledeće instrukcije: JSR 1000h, JSR +(R2), DEC u ASL 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 indikatora: PC=1000h, SP=0002h, ACC=77h, R0-1016h, Rl=1018h, R2=1015h, N=0, Z=0, V=0 i S-0. Indikatori statusne reči na koje instrukcija ne utiče treoa da ostanu nepromenjeni. Izvršiti 7 sukcesivnih naredbi i za svaku naredbu odrediti sledeće: u fazi čitanja instrukcije memorijske adrese sa kojih je pročitana instrukcija, sadržaj registra I, instrukciju koja je pročitana i novi sadržaj registra RS; u fazi određivanja adrese operanda i čitanja operanda - memorijske adrese sa kojih je pročitana adresa operanda, memorijske adrese sa kojih je pročitan operand, vrednost operanda i novi sadržaj registara opšte namene koji su u ovoj fazi promenjeni; u fazi izvršavanja operacije - memorijske adrese kojima se u ovoj fazi pristupa, sadržaj akumulatora A i indikatora N, Z, V i S nakon izvršavanja instrukcije i novi sadržaj registara i memorijskih lokacija koji su u ovoj fazi promenjeni, Rezultate predstaviti u tabelama 1, 2 i 3 formulara.

Sadržaj dela memorije iz postavke zadatka
LOKACIJA 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009
VREDNOST 10 02 00 C1 21 77 11 00 0A 83
LOKACIJA 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
VREDNOST 13 12 41 10 14 10 52 20 00 02
LOKACIJA 100A 100B 100C 100D 100E 100F 1010 1011 1012 1013
VREDNOST 10 12 61 10 00 23 80 01 10 11
LOKACIJA 1014 1015 1016 1017 1018 1019 101A 101B 101C 101D
VREDNOST 09 41 80 1A 03 E3 21 B8 10 13

Rešenje

# Adrese u memoriji sa kojih je učitana instrukcija IR23..16 IR15..8 IR7..0 Instrukcija PC
1 1000h 13h / / RTS 1001h
2 1002h, 1003h, 1004h 41h 10h 14h ADD 1014h 1005h
3 1005H 10h / / PUSH 1006h
4 1006h, 1007h 52h 20h / ASL +(R2) 1008h
5 1008h, 1009h 00h 02h / BZ (PC)02 100Ah
6 100Ch, 100Dh, 100Eh 61h 10h 00h JSR 1000h 100Fh
7 1000h 13h / / RTS 1001h
# Adrese u memoriji ili registri sa kojih je učitana adresa operanda Adrese u memoriji ili registri sa kojih je učitan operand Operand Novi sadržaj registara opšte namene
1 / / / /
2 / 1014 09h /
3 / / / /
4 / 1016h 80h R2 = 1016h
5 / / / /
6 / / / /
7 / / / /
# Memorijske adrese kojima se pristupa u ovoj fazi Akumulator N Z V C Novi sadržaj registara i memorijskih lokacija koji su promenjeni u ovoj fazi
1 0000h, 0001h 77h 0 0 0 0 PC = 1002h, SP = 0000h
2 / 80h 1 0 0 1 /
3 0000h 80h 1 0 0 1 MEM[0000h] = 80h, SP = 0001h
4 / 00h 0 1 1 0 /
5 / 00h 0 1 1 0 PC = 100Ch
6 0001h, 0002h 00h 0 1 1 0 MEM[0001h] = 10h, MEM[0002h] = OFh, SP = 0003h
7 0002h, 0001h 00h 0 1 1 0 SP = 0001h, PC = 100Fh
Operaciona jedinica K3 Januar 2024.jpg