ORT2/K2 2021

Izvor: SI Wiki
< ОРТ2
Datum izmene: 13. decembar 2021. u 14:31; autor: Aleksa (razgovor | doprinosi) (Нова страница: {{tocright}} К2 2021 је одржан у редовном термину. Рађен је у 2 групе. У наставку је дата поставка коју…)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

K2 2021 je održan u redovnom terminu. Rađen je u 2 grupe. U nastavku je data postavka koju je radila prva grupa (RTI smer).

Postavka

Posmatra se deo računara koji čine memorija i procesor. Memorija je kapaciteta 216 bajtova. Širina memorijske reči je 1 bajt. Procesor je sa jednoadresnim formatom instrukcija. Adrese i podaci su dužine 16 bita i zauzimaju po dve susedne memorijske lokacije, pri čemu se stariji bajt nalazi na višoj, a mlađi bajt na nižoj adresi.

U procesoru postoji registar programskog brojača RS dužine 2 bajta, adresni registar memorije MAR dužine 2 bajta, prihvatni registar podatka memorije MDR dužine 1 bajt, prihvatni registar instrukcije IR dužine Z bajta, akumulator A dužine 2 bajta, prihvatni registar podatka V dužine 2 bajta, bazni registar BR dužine 2 bajta, indeksni registar XR dužine 2 bajta, programska statusna reč PSW dužine 1 bajt. Instrukcije su dužine 1, 2sciili 3 bajta.

Bit 7 prvog bajta instrukcije je 1 za sve instrukcije skoka. Kod instrukcija uslovnog skoka bit 6 prvog bajta instrukcije je 0, dok kod instrukcija bezuslovnog skoka bit 6 prvog bajta instrukcije je 1. Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je bilo prenosa (JC) i instrukcija uslovnog skoka ukoliko je rezultat nula (BZ), a instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka (JMP) i instrukcija skoka na potprogram (JSR). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod operacije i na osnovu toga su za instrukcije JC, Be: JMP i JSR usvojeni kodovi operacije 10000000, 10000001sic, 11000001 i 11000010, respektivno. Instrukcije JC, JMP i JSR se realizuju kao apsolutni skokovi, pri čemu je adresa data drugim i trećim bajtom instrukcije. Dužina instrukcija je 3 bajta. Instrukcija VZ se realizuje kao relativni skok u odnosu na tekuću vrednost programskog brojača RS. Drugim bajtom instrukcije je dat pomeraj kao označena osmobitna binarna vrednost. Dužina instrukcija je 2 bajta.

Bit 7 prvog bajta instrukcije je 0 za sve adresne i bezadresne instrukcije. Bit 6 prvog bajta instrukcije je 0 za bezadresne instrukcije. Bezadresne instrukcije su instrukcije stavljanja sadržaja akumulatora na stek (PUSH), punjenja akumulatora sadržajem sa steka (POP) i povratka iz potprograma (RTS). Bitovima 5 do O prvog bajta instrukcije specificira se kod operacije za bezadresne instrukcije. Na osnovu toga su za instrukcije PUSH, POP i RTS usvojeni kodovi operacija 00000000, 00000001 i 00000011, respektivno. Dužina instrukcija je 1 bajt.

Bit 6 prvog bajta instrukcije je 1 za adresne instrukcije. Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija prenosa iz akumulatora (ST), aritmetička instrukcija sabiranja (ADD), instrukcija aritmetičkog pomeranja operanda jedno mesto ulevo koja smešta rezultat u akumulator (ASL) i instrukcija bezuslovnog skoka na sračunatu adresu (JADR). Bitovima 5 do 3 prvog bajta instrukcije specificira se kod operacije za adresne instrukcije. Na osnovu toga su za instrukcije LD, ST, ADD, ASL i JADR usvojeni kodovi operacija 01000, 01001, 01010, 01011 i 01100 respektivno. Načini adresiranja su specificirani bitovima 2, 1 i 0 prvog bajta instrukcije i to na sledeći način: 000-memorijsko direktno adresiranje (memdir), 001-memorijsko indirektno adresiranje (memind), 010-bazno adresiranje sa pomerajem (brpom), 011-relativno adresiranje sa pomerajem (pcrel) i 100-neposredno adresiranje (immed). Kod memorijskog direktnog i indirektnog adresiranja 16 bitna adresa memorijske lokacije je data drugim i trećim bajtom instrukcije. Dužina instrukcija je 3 bajta Kod baznog i relativnog adresiranja sa pomerajem, drugi i treći bajt instrukcije sadrže 16 bitni pomeraj koji je dat kao celobrojna veličina sa znakom. Dužina instrukcija je 3 bajta. Kod neposrednog adresiranja 16 bitni operand dat je drugim i trećim bajtom instrukcije. Dužina instrukcija je 3 bajta.

U procesoru se nalazi signal gradr koji je aktivan ukoliko pročitana instrukcija ima grešku pri adresiranju. Ovaj signal se proverava u fazi čitanja instrukcije i ukoliko je aktivan, prelazi se na fazu čitanja naredne instrukcije, a ukoliko nije aktivan nastavlja se sa izvršavanjem naredne faze instrukcije.

Stek raste prema nižim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu memorijsku lokaciju. Procesor nema mogućnost obrade prekida.


  • Napisati izraz za generisanje signala gradr koji je aktivan ukoliko pročitana instrukcija ima grešku pri adresiranju.
  • Koliki pomeraj u instrukciji koja se nalazi na adresi 0103h je potreban da bi se realizovao skok na početak instrukcije ADD 1234h?[1]
Adresa instrukcije Instrukcija
0100h ADD 1500h
0103h BZ ______
0106h PUSH
0107h JSR 0200h
010Ah POP
010Bh LD 0004h
010Eh PUSH
010Fh ADD 1234h
  • Napisati izraze za generisanje signala svih načina adresiranja. IR registar se popunjava od viših ka nižim bitovima.
  • Napisati izraze za generisanje signala operacija i to samo za PUSH i ADD.
  • Nacrtati dijagram toka faze formiranja adrese i čitanja operanda i faze izvršavanja instrukcije.

Rešenje

Napomene

  1. Prilikom obilaska, nastavnici su naglasili da smatramo da u ovoj stavci BZ ima 3 bajta.