ORT2/K2 2018

Izvor: SI Wiki
< ОРТ2
Datum izmene: 30. januar 2021. u 16:26; autor: KockaAdmiralac (razgovor | doprinosi) (Postavka pretprošlogodišnjeg K2)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

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. Podaci su celobrojne veličine sa znakom dužine 1 bajt predstavljeni u drugom komplementu. Adrese u memoriji zauzimaju dve susedne memorijske lokacije, pri čemu se stariji bajt nalazi na višoj lokaciji, a mlađi bajt na nižoj lokaciji.

U procesoru postoji registar programskog brojača PC 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 4 bajta, akumulator A dužine 1 bajt, prihvatni registar podatka B dužine 1 bajt, registri opšte namene R0 do R63 dužine 2 bajta, programska statusna reč PSW dužine 1 bajt, ukazivač na vrh steka SP dužine 2 bajta. Instrukcije su dužine 1, 2, 3 ili 4 memorijske reči.

Podaci se pri upisu u registre opšte namene smeštaju u nižih 8 bitova, dok se viših osam popunjava znakom podatka. Pri čitanju podataka iz registara opšte namene koriste se nižih 8 bitova. Kod upisa ili čitanja adrese iz registra opšte namene koriste se svih 16 bitova.

Bit 7 prvog bajta instrukcije ima vrednost 0 za instrukcije skoka, pri čemu bit 6 prvog bajta instrukcije ima vrednost 0 za instrukcije uslovnog skoka i 1 za instrukcije bezuslovnog skoka. Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko rezultat nije nula (BNZ). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod operacije za instrukcije uslovnog skoka. Na osnovu toga je za instrukciju BNZ usvojen kod operacije 00000000. Instrukcija BNZ se realizuje kao relativni skok u odnosu na tekuću vrednost programskog brojača PC, a pomeraj je 8 bitna celobrojna veličina sa znakom data drugim bajtom instrukcije. Dužina instrukcije je dva bajta. Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka (JMP) i instrukcija skoka na potprogram (JSR). Bitovima 5 do 0 prvog bajta instrukcije se specificira kod operacije za instrukcije bezuslovnog skoka. Na osnovu toga su za instrukcije JMP i JSR usvojeni kodovi operacija 01000000 i 01000001, respektivno. Instrukcije JMP i JSR se realizuju kao apsolutni skokovi, a adresa skoka je data drugim i trećim bajtom instrukcije. Dužina instrukcija je tri bajta.

Bit 7 prvog bajta instrukcije ima vrednost 1 za bezadresne i adresne instrukcije, pri čemu bit 6 prvog bajta instrukcije ima vrednost 0 za bezadresne instrukcije i 1 za adresne instrukcije. Bezadresne instrukcije su instrukcije stavljanja sadržaja akumulatora na stek (PUSH), instrukcija skidanja sadržaja sa steka u akumulator (POP) i instrukcija povratka iz potporgrama (RTS). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod operacije za bezadresne instrukcije. Na osnovu toga su za instrukcije PUSH, POP i RTS usvojeni kodovi operacija 10000000, 10000001 i 10000010, respektivno. Dužina instrukcija je jedan bajt. Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija prenosa iz akumulatora (ST), aritmetička instrukcija oduzimanja (SUB), instrukcija logičkog pomeranja udesno za jedno mesto (LSR) i instrukcija bezuslovnog skoka na sračunatu adresu (JADR). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod operacije za adresne instrukcije. Na osnovu toga su za instrukcije LD, ST, SUB, LSR i JADR usvojeni kodovi operacija 11000000, 11000001, 11000010, 11000011 i 11000100 respektivno. Dužina instrukcija je dva, tri ili četiri bajta i zavisi od specificiranog načina adresiranja.

Načini adresiranja su specificirani bitovima 7 i 6 druge reči instrukcije i to na sledeći način: 00-neposredno adresiranje, 01-registarsko direktno adresiranje, 10-registarsko indirektno adresiranje, 11-memorijsko direktno adresiranje.

Kod neposrednog adresiranja 8 bitni operand je dat trećom rečju instrukcije. Bitovi od 5 do 0 druge reči instrukcije se ne koriste. Dužina instrukcija je 3 bajta.

Kod memorijskog direktnog adresiranja adresa memorijske lokacije je data trećom i četvrtom rečju instrukcije. Bitovi od 5 do 0 druge reči instrukcije se ne koriste. Dužina instrukcija je 4 bajta.

Kod registarskog direktnog i kod registarskog indirektnog adresiranja, bitovi od 5 do 0 druge reči instrukcije se koriste za adresiranje jednog od registara opšte namene R0 do R63. Dužina instrukcije je 2 bajta.

Stek raste prema nižim adresama u memoriji, a registar SP pokazuje na prvu slobodnu lokaciju na steku.

Procesor ne sadrži podršku za obradu prekida.

  1. Napisati izraze za generisanje signala koji je aktivan ukoliko se koristi memorijsko direktno adresiranje i koji je aktivan ukoliko se koristi registarsko indirektno adresiranje, kao i izraz koji je aktivan ukoliko instrukcija izvršava aritmetičku operaciju oduzumanja. IR registar se popunjava od viših ka nižim bitovima.
  2. Nacrtati dijagram toka faze formiranja adrese i čitanja operanda i faze izvršavanje[sic] instrukcije.
  3. Dati su početni sadržaji registara i indikatora: PC=1000h, SP=2000h, ACC = 06h, R1=031Bh, N=0, Z=0, V=0 i C=0. Indikatori statusne reči na koje instrukcije ne utiče treba da ostanu nepromenjeni. Izvršiti 5 sukcesivnih naredbi i za svaku naredbu odrediti sledeće: u fazi čitanja instrukcije - memorijske adrese sa kojih je pročitana instrukcija, sadržaj registra IR, instrukciju koja je pročitana i novi sadržaj registra PC; 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 C 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.

Rešenje

Kodovi operacija

Signali

Dijagrami toka

ADDR

EXEC

Memorija