ОРТ2/К2 2021 — разлика између измена
(Нова страница: {{tocright}} К2 2021 је одржан у редовном термину. Рађен је у 2 групе. У наставку је дата поставка коју…) |
м (Nerešeno, tabela odvojena od liste, kategorizacija) |
||
| Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
{{нерешено}} | |||
К2 2021 је одржан у редовном термину. Рађен је у 2 групе. У наставку је дата поставка коју је радила прва група (РТИ смер). | К2 2021 је одржан у редовном термину. Рађен је у 2 групе. У наставку је дата поставка коју је радила прва група (РТИ смер). | ||
| Ред 19: | Ред 20: | ||
Стек расте према нижим меморијским локацијама, а регистар SP указује на прву слободну меморијску локацију. Процесор нема могућност обраде прекида. | Стек расте према нижим меморијским локацијама, а регистар SP указује на прву слободну меморијску локацију. Процесор нема могућност обраде прекида. | ||
<div class="abc-list"> | <div class="abc-list"> | ||
# Написати израз за генерисање сигнала grаdr који је активан уколико прочитана инструкција има грешку при адресирању. | |||
# Колики померај у инструкцији која се налази на адреси 0103h (табела 1) је потребан да би се реализовао скок на почетак инструкције ADD 1234h?<ref>Приликом обиласка, наставници су нагласили да сматрамо да у овој ставци BZ има 3 бајта, уместо 2 како пише у поставци.</ref> | |||
{| class="wikitable" | # Написати изразе за генерисање сигнала свих начина адресирања. IR регистар се попуњава од виших ка нижим битовима. | ||
| | # Написати изразе за генерисање сигнала операција и то само за PUSH и ADD. | ||
# Нацртати дијаграм тока фазе формирања адресе и читања операнда и фазе извршавања инструкције. | |||
</div> | |||
{| class="wikitable" | |||
|+ Табела 1: Секвенца инструкција из тачке под б. | |||
! Адреса инструкције | ! Адреса инструкције | ||
! Инструкција | ! Инструкција | ||
| Ред 53: | Ред 56: | ||
| ADD 1234h | | ADD 1234h | ||
|} | |} | ||
== Решење == | == Решење == | ||
| Ред 62: | Ред 61: | ||
== Напомене == | == Напомене == | ||
<references /> | <references /> | ||
[[Категорија:Рокови]] | |||
[[Категорија:ОРТ2]] | |||
Тренутна верзија на датум 13. децембар 2021. у 14:39
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
К2 2021 је одржан у редовном термину. Рађен је у 2 групе. У наставку је дата поставка коју је радила прва група (РТИ смер).
Поставка
Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 216 бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Адресе и подаци су дужине 16 бита и заузимају по две суседне меморијске локације, при чему се старији бајт налази на вишој, а млађи бајт на нижој адреси.
У процесору постоји регистар програмског бројача РС дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине З бајта, акумулатор А дужине 2 бајта, прихватни регистар податка В дужине 2 бајта, базни регистар BR дужине 2 бајта, индексни регистар XR дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт. Инструкције су дужине 1, 2sciили 3 бајта.
Бит 7 првог бајта инструкције је 1 за све инструкције скока. Код инструкција условног скока бит 6 првог бајта инструкције је 0, док код инструкција безусловног скока бит 6 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је било преноса (JC) и инструкција условног скока уколико је резултат нула (BZ), а инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм (JSR). Битовима 5 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције ЈC, Be: JMP и JSR усвојени кодови операције 10000000, 10000001sic, 11000001 и 11000010, респективно. Инструкције ЈC, JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта. Инструкција ВZ се реализује као релативни скок у односу на текућу вредност програмског бројача РС. Другим бајтом инструкције је дат померај као означена осмобитна бинарна вредност. Дужина инструкција је 2 бајта.
Бит 7 првог бајта инструкције је 0 за све адресне и безадресне инструкције. Бит 6 првог бајта инструкције је 0 за безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP) и повратка из потпрограма (RTS). Битовима 5 до О првог бајта инструкције специфицира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP и RTS усвојени кодови операција 00000000, 00000001 и 00000011, респективно. Дужина инструкција је 1 бајт.
Бит 6 првог бајта инструкције је 1 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), аритметичка инструкција сабирања (ADD), инструкција аритметичког померања операнда jедно место улево која смешта резултат у акумулатор (ASL) и инструкција безусловног скока на срачунату адресу (JADR). Битовима 5 до 3 првог бајта инструкције специфицира се код операције за адресне инструкције. На основу тога су за инструкције LD, ST, ADD, ASL и JADR усвојени кодови операција 01000, 01001, 01010, 01011 и 01100 респективно. Начини адресирања су специфицирани битовима 2, 1 и 0 првог бајта инструкције и то на следећи начин: 000-меморијско директно адресирање (memdir), 001-меморијско индиректно адресирање (mеmind), 010-базно адресирање са померајем (brpom), 011-релативно адресирање са померајем (pcrel) и 100-непосредно адресирање (immed). Код меморијског директног и индиректног адресирања 16 битна адреса меморијске локације је дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта Код базног и релативног адресирања са померајем, други и трећи бајт инструкције садрже 16 битни померај који је дат као целобројна величина са знаком. Дужина инструкција је 3 бајта. Код непосредног адресирања 16 битни операнд дат је другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта.
У процесору се налази сигнал gradr који је активан уколико прочитана инструкција има грешку при адресирању. Овај сигнал се проверава у фази читања инструкције и уколико је активан, прелази се на фазу читања наредне инструкције, а уколико није активан наставља се са извршавањем наредне фазе инструкције.
Стек расте према нижим меморијским локацијама, а регистар SP указује на прву слободну меморијску локацију. Процесор нема могућност обраде прекида.
- Написати израз за генерисање сигнала grаdr који је активан уколико прочитана инструкција има грешку при адресирању.
- Колики померај у инструкцији која се налази на адреси 0103h (табела 1) је потребан да би се реализовао скок на почетак инструкције ADD 1234h?[1]
- Написати изразе за генерисање сигнала свих начина адресирања. IR регистар се попуњава од виших ка нижим битовима.
- Написати изразе за генерисање сигнала операција и то само за PUSH и ADD.
- Нацртати дијаграм тока фазе формирања адресе и читања операнда и фазе извршавања инструкције.
| Адреса инструкције | Инструкција |
|---|---|
| 0100h | ADD 1500h |
| 0103h | BZ ______ |
| 0106h | PUSH |
| 0107h | JSR 0200h |
| 010Ah | POP |
| 010Bh | LD 0004h |
| 010Eh | PUSH |
| 010Fh | ADD 1234h |
Решење
Напомене
- ↑ Приликом обиласка, наставници су нагласили да сматрамо да у овој ставци BZ има 3 бајта, уместо 2 како пише у поставци.