ОРТ2/К3 Јануар 2024

Извор: SI Wiki
< ОРТ2
Датум измене: 9. фебруар 2024. у 21:08; аутор: Bogdan (разговор | доприноси) (→‎Решење)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

К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
Операциона јединица К3 Јануар 2024.jpg