ОРТ2/К2 2018

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Поставка

Посматра се део рачунара који чине меморија и процесор.

Меморија је капацитета 216 бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Подаци су целобројне величине са знаком дужине 1 бајт представљени у другом комплементу. Адресе у меморији заузимају две суседне меморијске локације, при чему се старији бајт налази на вишој локацији, а млађи бајт на нижој локацији.

У процесору постоји регистар програмског бројача PC дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине 4 бајта, акумулатор A дужине 1 бајт, прихватни регистар податка B дужине 1 бајт, регистри опште намене R0 до R63 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт, указивач на врх стека SP дужине 2 бајта. Инструкције су дужине 1, 2, 3 или 4 меморијске речи.

Подаци се при упису у регистре опште намене смештају у нижих 8 битова, док се виших осам попуњава знаком податка. При читању података из регистара опште намене користе се нижих 8 битова. Код уписа или читања адресе из регистра опште намене користе се свих 16 битова.

Бит 7 првог бајта инструкције има вредност 0 за инструкције скока, при чему бит 6 првог бајта инструкције има вредност 0 за инструкције условног скока и 1 за инструкције безусловног скока. Инструкција условног скока је инструкција условног скока уколико резултат није нула (BNZ). Битовима 5 до 0 првог бајта инструкције специфицира се код операције за инструкције условног скока. На основу тога је за инструкцију BNZ усвојен код операције 00000000. Инструкција BNZ се реализује као релативни скок у односу на текућу вредност програмског бројача PC, а померај је 8 битна целобројна величина са знаком дата другим бајтом инструкције. Дужина инструкције је два бајта. Инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм (JSR). Битовима 5 до 0 првог бајта инструкције се специфицира код операције за инструкције безусловног скока. На основу тога су за инструкције JMP и JSR усвојени кодови операција 01000000 и 01000001, респективно. Инструкције JMP и JSR се реализују као апсолутни скокови, а адреса скока је дата другим и трећим бајтом инструкције. Дужина инструкција је три бајта.

Бит 7 првог бајта инструкције има вредност 1 за безадресне и адресне инструкције, при чему бит 6 првог бајта инструкције има вредност 0 за безадресне инструкције и 1 за адресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), инструкција скидања садржаја са стека у акумулатор (POP) и инструкција повратка из потпорграма (RTS). Битовима 5 до 0 првог бајта инструкције специфицира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP и RTS усвојени кодови операција 10000000, 10000001 и 10000010, респективно. Дужина инструкција је један бајт. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), аритметичка инструкција одузимања (SUB), инструкција логичког померања удесно за једно место (LSR) и инструкција безусловног скока на срачунату адресу (JADR). Битовима 5 до 0 првог бајта инструкције специфицира се код операције за адресне инструкције. На основу тога су за инструкције LD, ST, SUB, LSR и JADR усвојени кодови операција 11000000, 11000001, 11000010, 11000011 и 11000100 респективно. Дужина инструкција је два, три или четири бајта и зависи од специфицираног начина адресирања.

Начини адресирања су специфицирани битовима 7 и 6 друге речи инструкције и то на следећи начин: 00-непосредно адресирање, 01-регистарско директно адресирање, 10-регистарско индиректно адресирање, 11-меморијско директно адресирање.

Код непосредног адресирања 8 битни операнд је дат трећом речју инструкције. Битови од 5 до 0 друге речи инструкције се не користе. Дужина инструкција је 3 бајта.

Код меморијског директног адресирања адреса меморијске локације је дата трећом и четвртом речју инструкције. Битови од 5 до 0 друге речи инструкције се не користе. Дужина инструкција је 4 бајта.

Код регистарског директног и код регистарског индиректног адресирања, битови од 5 до 0 друге речи инструкције се користе за адресирање једног од регистара опште намене R0 до R63. Дужина инструкције је 2 бајта.

Стек расте према нижим адресама у меморији, а регистар SP показује на прву слободну локацију на стеку.

Процесор не садржи подршку за обраду прекида.

  1. Написати изразе за генерисање сигнала memdir који је активан уколико се користи меморијско директно адресирање и regind који је активан уколико се користи регистарско индиректно адресирање, као и израз SUB који је активан уколико инструкција извршава аритметичку операцију одузумања. IR регистар се попуњава од виших ка нижим битовима.
  2. Нацртати дијаграм тока фазе формирања адресе и читања операнда и фазе извршавање[sic] инструкције.
  3. Дати су почетни садржаји регистара и индикатора: PC=1000h, SP=2000h, ACC = 06h, R0=00A7h, R1=031Bh, R2=00E2h, R3=FFE3h, N=0, Z=0, V=0 и C=0. Индикатори статусне речи на које инструкције не утиче треба да остану непромењени. Извршити 5 сукцесивних наредби и за сваку наредбу одредити следеће: у фази читања инструкције - меморијске адресе са којих је прочитана инструкција, садржај регистра IR, инструкцију која је прочитана и нови садржај регистра PC; у фази одређивања адресе операнда и читања операнда - меморијске адресе са којих је прочитана адреса операнда, меморијске адресе са којих је прочитан операнд, вредност операнда и нови садржај регистара опште намене који су у овој фази промењени; у фази извршавања операције - меморијске адресе којима се у овој фази приступа, садржај акумулатора A и индикатора N, Z, V и C након извршавања инструкције и нови садржај регистара и меморијских локација који су у овој фази промењени. Резултате представити у табелама 1, 2 и 3 формулара.[1]

Решење

Кодови операција

Сигнали

Дијаграми тока

ADDR

EXEC

Меморија

  1. Почев од школске 2020/2021. године, оваква ставка долази тек на трећем колоквијуму.