ОРТ2/К3 Фебруар 2021 — разлика између измена
мНема описа измене |
|||
(Није приказано 8 међуизмена 4 корисника) | |||
Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
'''Испит у фебруарском року 2021. године''' одржан је 22. фебруара. | |||
== Поставка == | == Поставка == | ||
Ред 46: | Ред 46: | ||
! ВРЕДНОСТ | ! ВРЕДНОСТ | ||
| 22 || E9 || 84 || 02 || 00 || 11 || 00 || 30 || E8 || E8 | | 22 || E9 || 84 || 02 || 00 || 11 || 00 || 30 || E8 || E8 | ||
|} | |||
== Решење == | |||
=== Кодови операција === | |||
=== Операциона јединица === | |||
{{делимично решено}} | |||
=== Меморија === | |||
{| class="wikitable" | |||
! # | |||
! Адресе у меморији са којих је учитана инструкција | |||
! IR<sub>31..24</sub> | |||
! IR<sub>23..16</sub> | |||
! IR<sub>15..8</sub> | |||
! IR<sub>7..0</sub> | |||
! Инструкција | |||
! PC | |||
|- | |||
| 1 | |||
| 1000h, 1001h, 1002h | |||
| / | |||
| 60h | |||
| 00h | |||
| 00h | |||
| ST 0000h | |||
| 1003h | |||
|- | |||
| 2 | |||
| 1003h, 1004h, 1005h | |||
| / | |||
| D4h | |||
| F6h | |||
| FFh | |||
| ADD #FFF6h | |||
| 1006h | |||
|- | |||
| 3 | |||
| 1006h,1007h | |||
| / | |||
| 00h | |||
| 0Ch | |||
| / | |||
| BN(PC)0Ch | |||
| 1008h | |||
|- | |||
| 4 | |||
| 1014h | |||
| / | |||
| 22h | |||
| / | |||
| / | |||
| NOT | |||
| 1015h | |||
|- | |||
| 5 | |||
| 1015h | |||
| / | |||
| E9h | |||
| / | |||
| / | |||
| SUB R1 | |||
| 1016h | |||
|- | |||
| 6 | |||
| 1016h,1017h,1018h | |||
| / | |||
| 84h | |||
| 02h | |||
| 00h | |||
| ASR(0002h) | |||
| 1019h | |||
|- | |||
| 7 | |||
| 1019h, 101Ah, 101Bh | |||
| / | |||
| 11h | |||
| 00h | |||
| 30h | |||
| JSR 3000h | |||
| 101Ch | |||
|} | |||
{| class="wikitable" | |||
! # | |||
! Адресе у меморији или регистри са којих је учитана адреса операнда | |||
! Адресе у меморији или регистри са којих је учитан операнд | |||
! Операнд | |||
! Нови садржај регистара опште намене | |||
|- | |||
| 1 | |||
| / | |||
| / | |||
| / | |||
| / | |||
|- | |||
| 2 | |||
| / | |||
| / | |||
| FFF6h | |||
| / | |||
|- | |||
| 3 | |||
| / | |||
| / | |||
| / | |||
| / | |||
|- | |||
| 4 | |||
| / | |||
| / | |||
| / | |||
| / | |||
|- | |||
| 5 | |||
| / | |||
| / | |||
| 0001h | |||
| R1 = 0001h | |||
|- | |||
| 6 | |||
| 0002h,0003h | |||
| 0000h,0001h | |||
| FFF7h | |||
| / | |||
|- | |||
| 7 | |||
| / | |||
| / | |||
| / | |||
| / | |||
|} | |||
{| class="wikitable" | |||
! # | |||
! Меморијске адресе којима се приступа у овој фази | |||
! Акумулатор | |||
! N | |||
! Z | |||
! V | |||
! C | |||
! Нови садржај регистара и меморијских локација који су промењени у овој фази | |||
|- | |||
| 1 | |||
| 0000h, 0001h | |||
| FFF7h | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 0 | |||
| MEM[0000h] = F7h, MEM[0001h] = FFh | |||
|- | |||
| 2 | |||
| / | |||
| FFEDh | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| / | |||
|- | |||
| 3 | |||
| / | |||
| FFEDh | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| PC = 1014h | |||
|- | |||
| 4 | |||
| / | |||
| 0012h | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| / | |||
|- | |||
| 5 | |||
| / | |||
| 0011h | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 0 | |||
| / | |||
|- | |||
| 6 | |||
| / | |||
| FFFBh | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| / | |||
|- | |||
| 7 | |||
| 2000h, 2001h | |||
| FFFBh | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| MEM[2000h] = 1Ch , MEM[2001h] = 10h, SP = 2002h, PC = 3000h | |||
|} | |} | ||
[[Категорија:ОРТ2]] | [[Категорија:ОРТ2]] | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] |
Тренутна верзија на датум 11. фебруар 2023. у 15:44
Испит у фебруарском року 2021. године одржан је 22. фебруара.
Поставка
Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 216 бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Адресе и подаци су дужине 16 бита и заузимају по две суседне меморијске локације, при чему се старији бајт налази на вишој, а млађи бајт на нижој адреси.
У процесору постоји регистар програмског бројача PC дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине 3 бајта, акумулатор A дужине 2 бајта, прихватни регистар податка B дужине 2 бајта, регистри опште намене R0 до R3 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт. Програмска статусна реч PSW садржи битове N, Z, C и V који се ажурирају приликом рада процесора. Инструкције су дужине 1, 2 или 3 бајта.
Битови 7, 6 и 5 првог бајта инструкције је 000 за све инструкције скока. Код инструкције условног скока бит 4 првог бајта инструкције је 0, док код инструкција безусловног скока бит 4 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је резултат негативан (BN) и инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм JSR. Битовима 3 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције BN, JMP и JSR усвојени кодови операције 00000000, 00010000 и 00010001, респективно. Инструкције JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта. Инструкција BN се реализује као релативни скок у односу на текућу вредност програмског бројача PC, а померај је 8 битна целобројна величина са знаком дата другим бајтом инструкције. Дужина инструкције је 2 бајта.
Битови 7, 6 и 5 првог бајта инструкције је 001 за све безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP) и инструкција комплементирања садржаја акумулатора (NOT). Битовима 4 до 0 првог бајта инструкције специфира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP и NOT усвојени кодови операција 00100000, 00100001 и 00100010, респективно. Дужина инструкција је 1 бајт.
Битови 7, 6 и 5 првог бајта инструкције имају вредности од 010 до 111 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), инструкција аритметичког померања удесно за једно место (ASR), инструкција упоређивања акумулатора са операндом (CMP), инструкција сабирања (ADD) и инструкција одузимања (SUB). На основу тога су за инструкције LD, ST, ASR, CMP, ADD и SUB усвојени кодови операција 010, 011, 100, 101, 110 и 111, респективно. Дужина инструкција је 2 или 3 бајта и зависи од специфичног начина адресирања.
Начини адресирања су специфицирани битовима 4, 3 и 2 првог бајта инструкције и то на следећи начин: 000-меморијско директно адресирање (memdir), 001-меморијско индиректно адресирање (memind), 010-регистарско директно адресирање (regdir), 011-регистарско индиректно адресирање (regind), 100-релативно адресирање са померајем (pcrel), 101-непосредно адресирање (immed) и 110-регистарско индиректно адресирање са преинкрементирањем (preincr). Код меморијског директног и меморијског индиректног адресирања 16 битна адреса меморијске локације је дата другим и трећим бајтом инструкције. Битови 1 и 0 првог бајта инструкције се не користе. Дужина инструкције је 3 бајта. Регистарско директно, регистарско индиректно и регистарско индиректно адресирање са преинкрементирањем користе неке од регистара опште намене R0 до R3 специфициране битовима 1 и 0 првог бајта. Дужина инструкција је 1 бајт. Код релативног адресирања са померајем други бајт инструкције садржи 8 битни померај који је дат као целобројна величина са знаком. Битови 1 и 0 првог бајта инструкције се не користе. Дужина инструкција је 2 бајта. Код непосредног адресирања 16 битни операнд дат је другим и трећим бајтом инструкције. Битови 1 и 0 првог бајта инструкције се не користе. Дужина инструкција је 3 бајта.
Стек расте према вишим меморијским локацијама, а регистар SP указује на прву слободну меморијску локацију. Процесор нема могућност обраде прекида.
- Пројектовати део операционе јединице процесора (фазе: FETCH, ADDR и EXEC) која је потребна да се изврши инструкција CMP +(R0). Цртати само неопходне компоненте које су потребне за извршавање наведене инструкције.
- Дати су почетни садржаји регистара и индикатора: PC=1000h, SP=2000h, ACC=FFF7h, R0=0000h, R1=0001h, R2=0002h, R3=0003h, N=1, Z=0, V=0 и C=0. Индикатори статусне речи на које инструкција не утиче треба да остану непромењени. Извршити 7 сукцесивних наредби и за сваку наредбу одредити следеће: у фази читања инструкције - меморијске адресе са којих је прочитана инструкција, садржај регистра IR, инструкцију која је прочитана и нови садржај регистра PC; у фази одређивања адресе операнда и читања операнда - меморијске адресе са којих је прочитана адреса операнда, меморијске адресе са којих је прочитан операнд, вредност операнда и нови садржај регистара опште намене који су у овој фази промењени; у фази извршавања операције - меморијске адресе којима се у овој фази приступа, садржај акумулатора A и индикатора N, Z, V и C након извршавања инструкције и нови садржај регистара и меморијских локација који су у овој фази промењени. Резултате представити у табелама 1, 2 и 3 формулара.
ЛОКАЦИЈА | 0000 | 0001 | 0002 | 0003 | 0004 | 0005 | 0006 | 0007 | 0008 | 0009 |
---|---|---|---|---|---|---|---|---|---|---|
ВРЕДНОСТ | 07 | FF | 00 | 00 | 21 | 77 | 11 | 00 | 0A | 83 |
ЛОКАЦИЈА | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
ВРЕДНОСТ | 60 | 00 | 00 | D4 | F6 | FF | 00 | 0C | D4 | F6 |
ЛОКАЦИЈА | 100A | 100B | 100C | 100D | 100E | 100F | 1010 | 1011 | 1012 | 1013 |
ВРЕДНОСТ | FF | 30 | 00 | 08 | A0 | 40 | 10 | 19 | 00 | 52 |
ЛОКАЦИЈА | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 101A | 101B | 101C | 101D |
ВРЕДНОСТ | 22 | E9 | 84 | 02 | 00 | 11 | 00 | 30 | E8 | E8 |
Решење
Кодови операција
Операциона јединица
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Меморија
# | Адресе у меморији са којих је учитана инструкција | IR31..24 | IR23..16 | IR15..8 | IR7..0 | Инструкција | PC |
---|---|---|---|---|---|---|---|
1 | 1000h, 1001h, 1002h | / | 60h | 00h | 00h | ST 0000h | 1003h |
2 | 1003h, 1004h, 1005h | / | D4h | F6h | FFh | ADD #FFF6h | 1006h |
3 | 1006h,1007h | / | 00h | 0Ch | / | BN(PC)0Ch | 1008h |
4 | 1014h | / | 22h | / | / | NOT | 1015h |
5 | 1015h | / | E9h | / | / | SUB R1 | 1016h |
6 | 1016h,1017h,1018h | / | 84h | 02h | 00h | ASR(0002h) | 1019h |
7 | 1019h, 101Ah, 101Bh | / | 11h | 00h | 30h | JSR 3000h | 101Ch |
# | Адресе у меморији или регистри са којих је учитана адреса операнда | Адресе у меморији или регистри са којих је учитан операнд | Операнд | Нови садржај регистара опште намене |
---|---|---|---|---|
1 | / | / | / | / |
2 | / | / | FFF6h | / |
3 | / | / | / | / |
4 | / | / | / | / |
5 | / | / | 0001h | R1 = 0001h |
6 | 0002h,0003h | 0000h,0001h | FFF7h | / |
7 | / | / | / | / |
# | Меморијске адресе којима се приступа у овој фази | Акумулатор | N | Z | V | C | Нови садржај регистара и меморијских локација који су промењени у овој фази |
---|---|---|---|---|---|---|---|
1 | 0000h, 0001h | FFF7h | 1 | 0 | 0 | 0 | MEM[0000h] = F7h, MEM[0001h] = FFh |
2 | / | FFEDh | 1 | 0 | 0 | 1 | / |
3 | / | FFEDh | 1 | 0 | 0 | 1 | PC = 1014h |
4 | / | 0012h | 0 | 0 | 0 | 1 | / |
5 | / | 0011h | 0 | 0 | 0 | 0 | / |
6 | / | FFFBh | 1 | 0 | 0 | 1 | / |
7 | 2000h, 2001h | FFFBh | 1 | 0 | 0 | 1 | MEM[2000h] = 1Ch , MEM[2001h] = 10h, SP = 2002h, PC = 3000h |