ОРТ2/К3 Јануар 2024 — разлика између измена
мНема описа измене |
(→Решење) |
||
Ред 144: | Ред 144: | ||
| 00h | | 00h | ||
| JSR 1000h | | JSR 1000h | ||
| | | 100Fh | ||
|- | |- | ||
| 7 | | 7 | ||
| | | 1000h | ||
| 13h | | 13h | ||
| / | | / | ||
| / | | / | ||
| RTS | | RTS | ||
| | | 1001h | ||
|} | |} | ||
Тренутна верзија на датум 9. фебруар 2024. у 21:08
К3 одржан је 20.01.2024. у јануарском року Због измена програма предмета није било могуће да се ради и К2 и К3 интегрално, већ се бирао један од та два.
Посматра се део рачунара који чине меморија и и процесор. Меморија јe капацитета 2^16 бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Подаци су дужине 1 бајт. Адресе су дужине 2 бајта и заузимају две суседне меморијске локације, при чему се млађи бајт налази на вишој, а старији бајт на нижој адреси. У процесору постоји регистар програмског бројача РС дужине 2 бајт, адресни регистар меморије МАR дужине 2 бајт, прихватни регистар податка меморије MR 1 бајт, прихватни регистар инструкције IR дужине 3 бајта, акумулатор А дужине 1 бајта, прихватни регистар податка В дужине 1 бајта, регистри опште намене RO, R1 до R15 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт, указивач на на врх стека SР дужине 2 бајт. Инструкције су дужине 1, 2 или 3 бајта.
Инструкција скока јe инструкција условног скока уколико је резултат нула (ВZ). БИтови IR23.20 имају вредност 0000 за инструкције скока, Инструкиија BZ реализује, се као релативни скок у односу на тренутну вредност програмског бројача PC. Битови IR23.16 представљајут код операције који је 00000000 за инструкцију BZ. Битови IR15.8 представљају померај који Jе 8-битна целобројна величина са знаком. Инструкција је дужине 2 бајт.
Безадресне инструкције су инструкција стављања садржаја акумулатора на стек (PUSН), пуњења акумулатора садржајем са стека (РОР), декрементирања акумулатора (DЕС) и повратка из потпрограма (RTS). Битови IR23.20 имају вредност 0001 за безадресне инструкције. Битови IR19.16 означавају редни број инструкције. Битови IR23.16 представљају код операције и редом су 00010000, 00010001, 00010010, 00010011 за инструкције PUSH, POP, DEC u RTS. Инструкције су дужине 1 бајт.
Адресне инструкције су инструкцијa преноса У акумулатор (LD) инструкција преноса из акумулатора (ST), аритметичка инструкција сабирања (ADD), инструкција аритметичког померања улево за једно место (АSL) и инструкција безусловног скока на срачунату адресу потпрограма (JSR). У случају да се наиђе на комбинацију операција са неким адресирањем са којим та операција не може да се изврши, такве инструкције треба да буду без дејства. Инструкција АSL резултат померања смешта у регистар А Битови ПR23.20 представљају код операције и редом су 0010, 0011, 0100, 0101 и 0110 за инструкције LD, ST, ADD, ASL и JSR, Дужина инструкција зависи од начина адресирања.
Начини адресирања су регистарско директно адресирање (regdir), меморијско директно адресирање (memdir), регистарско индиректно са преинкрементирањем адресирање (preiпсг) и непосредно адресирање (immed). Битови IRi9.1 представљају начин адресирања и редом су 0000, 0001, 0010 и 0011 за адресирања regdir, memdir, preincr и immed. Код регистарских адресирања битови IR15.12 се користе за адресирање једног од регистара опште намене R0 до R15, док се битови IR11.8 не користе. Дужина инструкције је 2 бајта. Код меморијских адресирања битови IR15.0 представљају адресу меморијске локације. Дужина инструкције је З бајта. Код непосредног адресирања битови IR15.8 представљају 8 битни податак. Дужина инструкције је 2 бајта ватм лоаиіама Стек расте према вишим меморијским локацијама, а регистар SP указује на прву слободну меморијску локацију.
К3 [30]
Сматрати да су регистри RO-R15 смештени у регистарски фајл. а) Пројектовати део операционе јединице процесора (FЕТСН + АДДR + ЕХЕС) која је потребна да се изврше следеће инструкције: JSR 1000h, JSR +(R2), DEC u ASL R2. Потребно је нацртати само једну операциону јединицу која може да изврши све споменуте инструкције.
б) Дати су почетни садржаји регистара индикатора: PC=1000h, SP=0002h, ACC=77h, R0-1016h,
Rl=1018h, R2=1015h, N=0, Z=0, V=0 и С-0. Индикатори статусне речи на које инструкција не утиче треоа
да остану непромењени. Извршити 7 сукцесивних наредби и за сваку наредбу одредити следеће: у фази
читања инструкције меморијске адресе са којих је прочитана инструкција, садржај регистра I,
инструкцију која је прочитана и нови садржај регистра РС; у фази одређивања адресе операнда и читања
операнда - меморијске адресе са којих је прочитана адреса операнда, меморијске адресе са којих је
прочитан операнд, вредност операнда и нови садржај регистара опште намене који су у овој фази
промењени; у фази извршавања операције - меморијске адресе којима се у овој фази приступа, садржај
акумулатора А и индикатора N, Z, V и С након извршавања инструкције и нови садржај регистара и
меморијских локација који су у овој фази промењени, Резултате представити у табелама 1, 2 и 3
формулара.
ЛОКАЦИЈА | 0000 | 0001 | 0002 | 0003 | 0004 | 0005 | 0006 | 0007 | 0008 | 0009 |
---|---|---|---|---|---|---|---|---|---|---|
ВРЕДНОСТ | 10 | 02 | 00 | C1 | 21 | 77 | 11 | 00 | 0A | 83 |
ЛОКАЦИЈА | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
ВРЕДНОСТ | 13 | 12 | 41 | 10 | 14 | 10 | 52 | 20 | 00 | 02 |
ЛОКАЦИЈА | 100A | 100B | 100C | 100D | 100E | 100F | 1010 | 1011 | 1012 | 1013 |
ВРЕДНОСТ | 10 | 12 | 61 | 10 | 00 | 23 | 80 | 01 | 10 | 11 |
ЛОКАЦИЈА | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 101A | 101B | 101C | 101D |
ВРЕДНОСТ | 09 | 41 | 80 | 1A | 03 | E3 | 21 | B8 | 10 | 13 |
Решење
# | Адресе у меморији са којих је учитана инструкција | IR23..16 | IR15..8 | IR7..0 | Инструкција | PC |
---|---|---|---|---|---|---|
1 | 1000h | 13h | / | / | RTS | 1001h |
2 | 1002h, 1003h, 1004h | 41h | 10h | 14h | ADD 1014h | 1005h |
3 | 1005H | 10h | / | / | PUSH | 1006h |
4 | 1006h, 1007h | 52h | 20h | / | ASL +(R2) | 1008h |
5 | 1008h, 1009h | 00h | 02h | / | BZ (PC)02 | 100Ah |
6 | 100Ch, 100Dh, 100Eh | 61h | 10h | 00h | JSR 1000h | 100Fh |
7 | 1000h | 13h | / | / | RTS | 1001h |
# | Адресе у меморији или регистри са којих је учитана адреса операнда | Адресе у меморији или регистри са којих је учитан операнд | Операнд | Нови садржај регистара опште намене |
---|---|---|---|---|
1 | / | / | / | / |
2 | / | 1014 | 09h | / |
3 | / | / | / | / |
4 | / | 1016h | 80h | R2 = 1016h |
5 | / | / | / | / |
6 | / | / | / | / |
7 | / | / | / | / |
# | Меморијске адресе којима се приступа у овој фази | Акумулатор | N | Z | V | C | Нови садржај регистара и меморијских локација који су промењени у овој фази |
---|---|---|---|---|---|---|---|
1 | 0000h, 0001h | 77h | 0 | 0 | 0 | 0 | PC = 1002h, SP = 0000h |
2 | / | 80h | 1 | 0 | 0 | 1 | / |
3 | 0000h | 80h | 1 | 0 | 0 | 1 | MEM[0000h] = 80h, SP = 0001h |
4 | / | 00h | 0 | 1 | 1 | 0 | / |
5 | / | 00h | 0 | 1 | 1 | 0 | PC = 100Ch |
6 | 0001h, 0002h | 00h | 0 | 1 | 1 | 0 | MEM[0001h] = 10h, MEM[0002h] = OFh, SP = 0003h |
7 | 0002h, 0001h | 00h | 0 | 1 | 1 | 0 | SP = 0001h, PC = 100Fh |