<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akili</id>
	<title>SI Wiki - Кориснички доприноси [sr]</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akili"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D0%B1%D0%BD%D0%BE:%D0%94%D0%BE%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8/Akili"/>
	<updated>2026-06-04T06:44:29Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4415</id>
		<title>Архитектура рачунара/Јул 2021</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4415"/>
		<updated>2022-06-15T08:14:17Z</updated>

		<summary type="html">&lt;p&gt;Akili: /* Решење */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{нерешено}}&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Нацртати структуру контролера улазно/излазне периферије са директним приступом меморији. &lt;br /&gt;
# Објаснити функцију свих делова контролера. &lt;br /&gt;
# Објаснити којим битовима и у којим регистрима се задају могући режими рада контролера и добијају информације како се одвија пренос података.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Контролер излазне периферије и излазна периферија за међусобно повезивање користе паралелни интерфејс који се састоји од линија података, једне статусне линије и једне управљачке линије. Статусном линијом излазна периферија даје индикацију контролеру периферије да ли је спремна да прими податак који је доступан на линијама података, док контролер периферије управљачком линијом обезбеђује читање податка са линија података у свој интерни регистар. Навести по ком редоследу се наведене линије користе за синхронизацију и слање података из контролера периферије на периферију. Одговор дати табеларно. Назначити која је почетна вредност на овим линијама.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Редослед&lt;br /&gt;
| Линија(статусна/управљачка/подаци)&lt;br /&gt;
| Вредност&lt;br /&gt;
| Значење&lt;br /&gt;
| Ко поставља&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој C функцији која надовезује низ &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; на крај низа &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; char *strcat (char *dest, const char *src);&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Функција као резултат враћа показивач на резултујући низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt; . Претпоставити да је низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;  довољне величине да се у њега може сместити резултујући низ, као и да нема преклапања између &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;. Ha располагању је процесор код кога аритметичке, логичке и померачке инструкције имају формат: OC reg, reg, reg/imm где је ОС код операције, одредишни операнд и морају бити у регистру (reg), док други може бити или у регистру или дат непосредно (reg/imm). Инструкција LOAD има формат: LOAD reg, mem где је првим операндом дат одредишни регистар (reg), a другим извориште. Инструкција STORE има формат: STORE reg, mem где је првим операндом дат изворишни регистар (reg), а другим одредиште. На располагању стоји 8 регистара опште намене. Претпоставити да су сви подаци и адресе исте дужине која је једнака адресибилној јединици. На располагању стоје и сложене инструкције.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
! stek raste nanize, SP pokazuje na poslednju zauzetu&lt;br /&gt;
! rezultat se vraca kroz Rres&lt;br /&gt;
&lt;br /&gt;
! *src		+3&lt;br /&gt;
! *dst		+2&lt;br /&gt;
! PCret		+1&lt;br /&gt;
! BP		+0&lt;br /&gt;
&lt;br /&gt;
ST BP, -(SP)&lt;br /&gt;
ADD BP, SP, #0&lt;br /&gt;
!backup registara&lt;br /&gt;
ST Rd, -(SP)&lt;br /&gt;
ST Rl, -(SP)&lt;br /&gt;
ST Rs, -(SP)&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj dst&lt;br /&gt;
LD Rd, (BP)2&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rd, &#039;\0&#039;   //LOCC len, adr, char&lt;br /&gt;
SUB Rd, Rd, #1&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj src (radi brojanja karaktera)&lt;br /&gt;
LD Rs, (BP)3&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rs, &#039;\0&#039;  //LOCC len, adr, char&lt;br /&gt;
LD Rres, (BP)3&lt;br /&gt;
SUB Rl, Rs, Rres&lt;br /&gt;
SUB Rres, Rs, Rres&lt;br /&gt;
LD Rs, BP(3)&lt;br /&gt;
&lt;br /&gt;
!kopiranje niza&lt;br /&gt;
MOVC Rl, Rs, Rres, Rd, &#039;\0&#039;   //MOVC srcLEN, srcADR, dstLEN, dstADR, fill&lt;br /&gt;
LD Rres, (BP)2&lt;br /&gt;
&lt;br /&gt;
!restauracija registara&lt;br /&gt;
LD Rs, (SP)+&lt;br /&gt;
LD Rl, (SP)+&lt;br /&gt;
LD Rd, (SP)+&lt;br /&gt;
LD BP, (SP)+&lt;br /&gt;
RTS&lt;br /&gt;
&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
У рачунарском систему се налази једноадресни процесор, меморија и периферије PER0, и PER1. Периферији PER0 је придружен DMA0 контролер. Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Узети да је тип података &#039;&#039;&#039;int&#039;&#039;&#039; дужине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су преклопљени. Адресе релевантних регистара периферија PER0 и DMA0 контролера су:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| PER0_CONTROL || F000h || DMA0_CONTROL || F003h || PER1_CONTROL || F010h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_STATUS  || F001h || DMA0_STATUS  || F004h || PER1_STATUS  || F011h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_DATA    || F002h || DMA0_DATA    || F005h || PER1_DATA    || F012h&lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_ADDR    || F006h ||              || &lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_CNT     || F007h ||              || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У управљачким регистрима бит 0 је &#039;&#039;Start&#039;&#039; којим се дозвољава почетак операције, бит 1 одређују тип преноса података (1 - улаз (&#039;&#039;input&#039;&#039;), 0-излаз (&#039;&#039;output&#039;&#039;)), бит 2 је &#039;&#039;Enable&#039;&#039; којим се дозвољава прекид. Бит 3 управљачког регистра контролера DMA0 се задаје режим рада (0-блоковски (&#039;&#039;burst&#039;&#039;), 1-циклус по циклус (&#039;&#039;cycle stealing&#039;&#039;)). Битови од 4 до 7 управљачког регистра DMA0 контролера садрже вредност за колико се увећава адресни регистар након сваког пренетог податка. У статусним регистрима бит 0 је &#039;&#039;Ready&#039;&#039; који сигнализира спремност контролера периферије.&lt;br /&gt;
&lt;br /&gt;
Написати главни програм, одговарајући потпрограм и прекидне рутине којима се обавља следећи пренос.&lt;br /&gt;
&lt;br /&gt;
Са периферија PER0 и PER1 упоредо се шаљу елементи низа. Низ се смешта у меморију почев од адресе 1000h и има 100h елемената. Периферија PER0 шаље елементе које треба смештати на места у низу са парним индексом, а елементе са PER1 треба смештати на места са непарним индексом.&lt;br /&gt;
&lt;br /&gt;
Након пријема низа, периферији која је прва завршила слање шаље се комплетан неопадајуће сортирани низ. За сортирање низа потребно је имплементирати и на одговарајућем месту у програму позвати функцију &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;void sort (int* arrAddr, int length)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Где је &amp;lt;code&amp;gt;arrAddr&amp;lt;/code&amp;gt; адреса низа, а &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; дужина низа. Не треба водити рачуна који алгоритам се користи за сортирање.&lt;br /&gt;
&lt;br /&gt;
Примање елемента са периферије PER0 реализовати коришћењем DMA0 контролера у блоковском режиму рада, а евентуално слање сортираног низа коришћењем DMA0 контролера у режиму циклус по циклус. Примање елемената са PER1 и евентуално слање сортираног низа на PER1 реализовати коришћењем механизма прекида.&lt;br /&gt;
&lt;br /&gt;
Сматрати да су доступни регистри XR, BP и SP приликом писања потпрограма, као и да је дозвољено регистарско индиректно адресирање са регистром XR. Обратити пажњу да потпрограм не сме да користи глобалне променљиве, већ само параметре потпрограма и локалне променљиве. Позивалац потпрограма је дужан да уклони параметре са стека. Процесор не поседује регистре опште намене, као ни регистар IMR. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно.&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&lt;br /&gt;
[[Категорија:Рокови]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BD_2021&amp;diff=4414</id>
		<title>Архитектура рачунара/Јун 2021</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BD_2021&amp;diff=4414"/>
		<updated>2022-06-14T22:49:45Z</updated>

		<summary type="html">&lt;p&gt;Akili: glup sam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; У посматраном рачунарском систему процесор има 3 пара линија по којима улазно/излазни уређаји могу процесору да шаљу захтеве за прекид и од процесора добијају сигнале потврда. У датом систему има 8 улазно/излазних уређаја које треба некако повезати помоћу та 3 пара линија на процесор и омогућити за сваки улазно/излазни уређај скок на одговарајућу прекидну рутину векторисаним механизмом прекида. &lt;br /&gt;
# Нацртати како тих 8 улазно/излазних уређаја треба повезати помоћу та 3 пара линија на процесор. &lt;br /&gt;
# Нацртати интерну структуру контролера периферије који дозвољава серијско слање прекида наредној периферији у ланцу.&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; Haписати оптималну секвенцу инструкција неопходних за срачунавање израза: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int a,b,c,d,e,f;&lt;br /&gt;
...&lt;br /&gt;
a = (b+c) - (d+e);&lt;br /&gt;
if (a == 0) f = (b+c);&lt;br /&gt;
else f = (d+e);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
На располаrању је процесор код кога аритметичке, логичке и померачке инструкције имају формат: ОС reg, reg, reg/imm где је ОС код операције, одредишни операнд и први операнд морају бити у регистру (reg), док други може бити или у регистру или дат непосредно (reg/imm). Инструкција LOAD има формат: LOAD reg, mem где је првим операндом дат одредишни регистар (reg), a другим извориште. Инструкцијa STORE има формат: STORE reg, mem где је првим операндом дат изворишни регистар (reg), a другим одредиште. А, В, С, D, E и F су глобалне променљиве које одговарају симболичким ознакама адреса меморијских локација у којима се налазе операнди. Садржај меморијских локација означених адресама В, С, D и Е треба да остане непромењен, садржај одговарајућих регистара је дозвољено мењати. На располагању стоји 8 регистара опште намене. Претпоставити да су сви подаци и адресе исте дужине која је једнака адресибилној јединици&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
        LOAD R1, b&lt;br /&gt;
        LOAD R2, c&lt;br /&gt;
        ADD R1, R1, R2&lt;br /&gt;
        LOAD R2, d&lt;br /&gt;
        LOAD R3, e&lt;br /&gt;
        ADD R2, R2, R3&lt;br /&gt;
        SUB R3, R1, R2&lt;br /&gt;
        STORE R3, a&lt;br /&gt;
        JNZ else&lt;br /&gt;
        STORE R1, f&lt;br /&gt;
        JMP end&lt;br /&gt;
else:   STORE R2, f&lt;br /&gt;
end:    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој С функцији која копира &#039;&#039;n&#039;&#039; бајта низа &#039;&#039;src&#039;&#039; y низ &#039;&#039;dst&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;void *memсру (void *dst, const void *src, int n);&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Функција као резултат враћа показивач на одредишни низ &#039;&#039;dst&#039;&#039;. Формати инструкција и података су као у задатку 2. На располагању стоје и сложене инструкције.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
	PUSH BP&lt;br /&gt;
	MV BP, SP&lt;br /&gt;
	PUSH R0&lt;br /&gt;
	PUSH R1&lt;br /&gt;
	PUSH R2&lt;br /&gt;
    PUSH R3&lt;br /&gt;
	&lt;br /&gt;
	//Pretpostavka da SP ukazuje na prvu slobodnu lokaciju i da raste na dole&lt;br /&gt;
	LD R0, [BP]3 	//dst&lt;br /&gt;
	LD R1, [BP]4	//src&lt;br /&gt;
	LD R2, [BP]5 	//n&lt;br /&gt;
    LD R3, [BP]5    //n -&amp;gt; mora da bude drugi registar&lt;br /&gt;
                    //jer se srcLEN i dstLEN dekrementiraju u MOVC!&lt;br /&gt;
	&lt;br /&gt;
	//srcLen, srcAddr, fill, dstLen, dstAddr&lt;br /&gt;
	MOVC R2, R1, &#039;x&#039;, R3, R0&lt;br /&gt;
	&lt;br /&gt;
    POP R3&lt;br /&gt;
	POP R2&lt;br /&gt;
	POP R1&lt;br /&gt;
	POP R0&lt;br /&gt;
	POP BP&lt;br /&gt;
	RTS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[25п]&#039;&#039;&#039; У рачунарском систему се налази једноадресни процесор, меморија и периферије РЕR0, PER1 до РERN. Cматрати да број N припада скупу од 1 до 15 и да може да се користи као непосредна вредност у програму (#N). Периферији РER0 jе придружен DMA0 контролер. Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Узети да је тип података &#039;&#039;&#039;іnt&#039;&#039;&#039; дужине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су преклопљени. Адресе релевантних регистара периферија РER0 и DМА0 контролера су:&lt;br /&gt;
{|&lt;br /&gt;
| PER0_CONTROL || F000h || DMA0_CONTROL || F003h || DMA0_ADDR || F006h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_STATUS  || F001h || DMA0_STATUS  || F004h || DMA0_CNT  || F007h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_DATA    || F002h || DMA0_DATA    || F005h&lt;br /&gt;
|}&lt;br /&gt;
Адресе релевантних регистара периферија РER1 до РERN се добијају као резултат потпрограма &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;int* getPеrRegAddr (unsigned int N, unsigned int typе);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
где N представља број периферије, type представља тип регистра (1 - ENTRY, 2 - CONTROL, 3 - STATUS, 4 - DATA). Потпрограм &#039;&#039;getPerRegAddr&#039;&#039; не треба имплементирати, већ само позивати на одговарајућем месту у програму.&lt;br /&gt;
&lt;br /&gt;
У управљачким регистрима бит 0 је &#039;&#039;Start&#039;&#039; којим се дозвољава почетак операције, бит 1 одрeђују тип преноса података (1 - улаз (&#039;&#039;input&#039;&#039;), 0 - излаз (&#039;&#039;output&#039;&#039;)), бит 2 је &#039;&#039;Enable&#039;&#039; којим се дозвољава прекид. Бит 3 управљачког регистра контролера DMA0 се задаје режим рада (0-блоковски (&#039;&#039;burst&#039;&#039;), 1-циклус по циклус (&#039;&#039;сусle stealing&#039;&#039;)). У статусним регистрима бит 0 је &#039;&#039;Ready&#039;&#039; који сигнализира спремност контролера периферије.&lt;br /&gt;
&lt;br /&gt;
Написати главни програм, одговарајући потпрограм и прекидну рутину којима се обавља следећи пренос. &lt;br /&gt;
&lt;br /&gt;
Периферија РER0 шаље низ од 100h означених целих бројева који се смештају у меморију почев од адресе 5000h. Hакон учитаног низа у меморију потребно је проследити максималну вредност низа периферијама РER1 до РЕRN. Пренос максималне вредности периферијама треба обављати у паралели, чим периферија буде спремна да прими податак. Након што је свака периферија примила максималну вредност, потребно је да РER0 учита нов низ (од 100h означених целих бројева који се смештају у меморију почев од адресе 5000h), да се проследи нова максимална вредност низа периферијама РER1 до PERN и тако циклично да ради програм.&lt;br /&gt;
&lt;br /&gt;
Периферије PER1 до РERN када се једном укључе, није дозвољено да се потом искључе. Ради евиденције којoј периферији је прослеђена тренутна максимална вредност низа потребно је увести променљиву &#039;&#039;mask&#039;&#039;. Bредност бита &#039;&#039;mask&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; треба да има вредност 1 уколико је тренутна максимална вредност низа прослеђена периферији РER&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;, a да има вредност 0 уколико тренутна максимална вредност низа није још прослеђена периферији РER&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. Након прослеђене максималне вредности свим периферијама, вредност променльиву &#039;&#039;mask&#039;&#039; треба ресетовати на 0.&lt;br /&gt;
&lt;br /&gt;
Потребно је имплементирати и у програму на одговарајуhем месту позвати потпрограм &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;int max (int* arrAddr, unsigned int length);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Који враћа максималну вредност низа задатом почетном адресом аrrAddr и дужине length eлемената.&lt;br /&gt;
&lt;br /&gt;
Примање података са периферије РERO реализовати коришћењем DMА0 контролера у блоковском режиму рада. Слање података на периферије РER1 до РERN peализовати испитивањем бита спремности.&lt;br /&gt;
&lt;br /&gt;
Сматрати да су доступни регистри ВР и SP приликом писања потпрограма. Обратити пажњу да потпрограм не сме да користи глобалне променљиве, већ само параметре потпрограма и локане променљиве. Позивалац потпрограма је дужан да уклони параметре са стека. Резултат потпрограма се враћа кроз акумулатор. Процесор не поседује регистре опште намене, као ни регистар IМR. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно. &#039;&#039;&#039;Обавезно је писање концизних коментара над семантичким целинама.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&lt;br /&gt;
[[Категорија:Рокови]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BD_2021&amp;diff=4413</id>
		<title>Архитектура рачунара/Јун 2021</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BD_2021&amp;diff=4413"/>
		<updated>2022-06-14T22:49:07Z</updated>

		<summary type="html">&lt;p&gt;Akili: popravaljeno resenje&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; У посматраном рачунарском систему процесор има 3 пара линија по којима улазно/излазни уређаји могу процесору да шаљу захтеве за прекид и од процесора добијају сигнале потврда. У датом систему има 8 улазно/излазних уређаја које треба некако повезати помоћу та 3 пара линија на процесор и омогућити за сваки улазно/излазни уређај скок на одговарајућу прекидну рутину векторисаним механизмом прекида. &lt;br /&gt;
# Нацртати како тих 8 улазно/излазних уређаја треба повезати помоћу та 3 пара линија на процесор. &lt;br /&gt;
# Нацртати интерну структуру контролера периферије који дозвољава серијско слање прекида наредној периферији у ланцу.&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; Haписати оптималну секвенцу инструкција неопходних за срачунавање израза: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int a,b,c,d,e,f;&lt;br /&gt;
...&lt;br /&gt;
a = (b+c) - (d+e);&lt;br /&gt;
if (a == 0) f = (b+c);&lt;br /&gt;
else f = (d+e);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
На располаrању је процесор код кога аритметичке, логичке и померачке инструкције имају формат: ОС reg, reg, reg/imm где је ОС код операције, одредишни операнд и први операнд морају бити у регистру (reg), док други може бити или у регистру или дат непосредно (reg/imm). Инструкција LOAD има формат: LOAD reg, mem где је првим операндом дат одредишни регистар (reg), a другим извориште. Инструкцијa STORE има формат: STORE reg, mem где је првим операндом дат изворишни регистар (reg), a другим одредиште. А, В, С, D, E и F су глобалне променљиве које одговарају симболичким ознакама адреса меморијских локација у којима се налазе операнди. Садржај меморијских локација означених адресама В, С, D и Е треба да остане непромењен, садржај одговарајућих регистара је дозвољено мењати. На располагању стоји 8 регистара опште намене. Претпоставити да су сви подаци и адресе исте дужине која је једнака адресибилној јединици&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
        LOAD R1, b&lt;br /&gt;
        LOAD R2, c&lt;br /&gt;
        ADD R1, R1, R2&lt;br /&gt;
        LOAD R2, d&lt;br /&gt;
        LOAD R3, e&lt;br /&gt;
        ADD R2, R2, R3&lt;br /&gt;
        SUB R3, R1, R2&lt;br /&gt;
        STORE R3, a&lt;br /&gt;
        JNZ else&lt;br /&gt;
        STORE R1, f&lt;br /&gt;
        JMP end&lt;br /&gt;
else:   STORE R2, f&lt;br /&gt;
end:    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[5п]&#039;&#039;&#039; Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој С функцији која копира &#039;&#039;n&#039;&#039; бајта низа &#039;&#039;src&#039;&#039; y низ &#039;&#039;dst&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;void *memсру (void *dst, const void *src, int n);&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Функција као резултат враћа показивач на одредишни низ &#039;&#039;dst&#039;&#039;. Формати инструкција и података су као у задатку 2. На располагању стоје и сложене инструкције.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
	PUSH BP&lt;br /&gt;
	MV BP, SP&lt;br /&gt;
	PUSH R0&lt;br /&gt;
	PUSH R1&lt;br /&gt;
	PUSH R2&lt;br /&gt;
    PUSH R3&lt;br /&gt;
	&lt;br /&gt;
	//Pretpostavka da SP ukazuje na prvu slobodnu lokaciju i da raste na dole&lt;br /&gt;
	LD R0, [BP]3 	//dst&lt;br /&gt;
	LD R1, [BP]4	//src&lt;br /&gt;
	LD R2, [BP]5 	//n&lt;br /&gt;
    LD R3, [BP]6    //n -&amp;gt; mora da bude drugi registar&lt;br /&gt;
                    //jer se srcLEN i dstLEN dekrementiraju u MOVC!&lt;br /&gt;
	&lt;br /&gt;
	//srcLen, srcAddr, fill, dstLen, dstAddr&lt;br /&gt;
	MOVC R2, R1, &#039;x&#039;, R3, R0&lt;br /&gt;
	&lt;br /&gt;
    POP R3&lt;br /&gt;
	POP R2&lt;br /&gt;
	POP R1&lt;br /&gt;
	POP R0&lt;br /&gt;
	POP BP&lt;br /&gt;
	RTS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
{{делимично решено}}&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&#039;&#039;&#039;[25п]&#039;&#039;&#039; У рачунарском систему се налази једноадресни процесор, меморија и периферије РЕR0, PER1 до РERN. Cматрати да број N припада скупу од 1 до 15 и да може да се користи као непосредна вредност у програму (#N). Периферији РER0 jе придружен DMA0 контролер. Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Узети да је тип података &#039;&#039;&#039;іnt&#039;&#039;&#039; дужине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су преклопљени. Адресе релевантних регистара периферија РER0 и DМА0 контролера су:&lt;br /&gt;
{|&lt;br /&gt;
| PER0_CONTROL || F000h || DMA0_CONTROL || F003h || DMA0_ADDR || F006h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_STATUS  || F001h || DMA0_STATUS  || F004h || DMA0_CNT  || F007h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_DATA    || F002h || DMA0_DATA    || F005h&lt;br /&gt;
|}&lt;br /&gt;
Адресе релевантних регистара периферија РER1 до РERN се добијају као резултат потпрограма &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;int* getPеrRegAddr (unsigned int N, unsigned int typе);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
где N представља број периферије, type представља тип регистра (1 - ENTRY, 2 - CONTROL, 3 - STATUS, 4 - DATA). Потпрограм &#039;&#039;getPerRegAddr&#039;&#039; не треба имплементирати, већ само позивати на одговарајућем месту у програму.&lt;br /&gt;
&lt;br /&gt;
У управљачким регистрима бит 0 је &#039;&#039;Start&#039;&#039; којим се дозвољава почетак операције, бит 1 одрeђују тип преноса података (1 - улаз (&#039;&#039;input&#039;&#039;), 0 - излаз (&#039;&#039;output&#039;&#039;)), бит 2 је &#039;&#039;Enable&#039;&#039; којим се дозвољава прекид. Бит 3 управљачког регистра контролера DMA0 се задаје режим рада (0-блоковски (&#039;&#039;burst&#039;&#039;), 1-циклус по циклус (&#039;&#039;сусle stealing&#039;&#039;)). У статусним регистрима бит 0 је &#039;&#039;Ready&#039;&#039; који сигнализира спремност контролера периферије.&lt;br /&gt;
&lt;br /&gt;
Написати главни програм, одговарајући потпрограм и прекидну рутину којима се обавља следећи пренос. &lt;br /&gt;
&lt;br /&gt;
Периферија РER0 шаље низ од 100h означених целих бројева који се смештају у меморију почев од адресе 5000h. Hакон учитаног низа у меморију потребно је проследити максималну вредност низа периферијама РER1 до РЕRN. Пренос максималне вредности периферијама треба обављати у паралели, чим периферија буде спремна да прими податак. Након што је свака периферија примила максималну вредност, потребно је да РER0 учита нов низ (од 100h означених целих бројева који се смештају у меморију почев од адресе 5000h), да се проследи нова максимална вредност низа периферијама РER1 до PERN и тако циклично да ради програм.&lt;br /&gt;
&lt;br /&gt;
Периферије PER1 до РERN када се једном укључе, није дозвољено да се потом искључе. Ради евиденције којoј периферији је прослеђена тренутна максимална вредност низа потребно је увести променљиву &#039;&#039;mask&#039;&#039;. Bредност бита &#039;&#039;mask&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; треба да има вредност 1 уколико је тренутна максимална вредност низа прослеђена периферији РER&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;, a да има вредност 0 уколико тренутна максимална вредност низа није још прослеђена периферији РER&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. Након прослеђене максималне вредности свим периферијама, вредност променльиву &#039;&#039;mask&#039;&#039; треба ресетовати на 0.&lt;br /&gt;
&lt;br /&gt;
Потребно је имплементирати и у програму на одговарајуhем месту позвати потпрограм &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;int max (int* arrAddr, unsigned int length);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Који враћа максималну вредност низа задатом почетном адресом аrrAddr и дужине length eлемената.&lt;br /&gt;
&lt;br /&gt;
Примање података са периферије РERO реализовати коришћењем DMА0 контролера у блоковском режиму рада. Слање података на периферије РER1 до РERN peализовати испитивањем бита спремности.&lt;br /&gt;
&lt;br /&gt;
Сматрати да су доступни регистри ВР и SP приликом писања потпрограма. Обратити пажњу да потпрограм не сме да користи глобалне променљиве, већ само параметре потпрограма и локане променљиве. Позивалац потпрограма је дужан да уклони параметре са стека. Резултат потпрограма се враћа кроз акумулатор. Процесор не поседује регистре опште намене, као ни регистар IМR. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно. &#039;&#039;&#039;Обавезно је писање концизних коментара над семантичким целинама.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&lt;br /&gt;
[[Категорија:Рокови]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4412</id>
		<title>Архитектура рачунара/Јул 2021</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4412"/>
		<updated>2022-06-14T22:27:51Z</updated>

		<summary type="html">&lt;p&gt;Akili: формат&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{нерешено}}&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Нацртати структуру контролера улазно/излазне периферије са директним приступом меморији. &lt;br /&gt;
# Објаснити функцију свих делова контролера. &lt;br /&gt;
# Објаснити којим битовима и у којим регистрима се задају могући режими рада контролера и добијају информације како се одвија пренос података.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Контролер излазне периферије и излазна периферија за међусобно повезивање користе паралелни интерфејс који се састоји од линија података, једне статусне линије и једне управљачке линије. Статусном линијом излазна периферија даје индикацију контролеру периферије да ли је спремна да прими податак који је доступан на линијама података, док контролер периферије управљачком линијом обезбеђује читање податка са линија података у свој интерни регистар. Навести по ком редоследу се наведене линије користе за синхронизацију и слање података из контролера периферије на периферију. Одговор дати табеларно. Назначити која је почетна вредност на овим линијама.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Редослед&lt;br /&gt;
| Линија(статусна/управљачка/подаци)&lt;br /&gt;
| Вредност&lt;br /&gt;
| Значење&lt;br /&gt;
| Ко поставља&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој C функцији која надовезује низ &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; на крај низа &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; char *strcat (char *dest, const char *src);&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Функција као резултат враћа показивач на резултујући низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt; . Претпоставити да је низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;  довољне величине да се у њега може сместити резултујући низ, као и да нема преклапања између &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;. Ha располагању је процесор код кога аритметичке, логичке и померачке инструкције имају формат: OC reg, reg, reg/imm где је ОС код операције, одредишни операнд и морају бити у регистру (reg), док други може бити или у регистру или дат непосредно (reg/imm). Инструкција LOAD има формат: LOAD reg, mem где је првим операндом дат одредишни регистар (reg), a другим извориште. Инструкција STORE има формат: STORE reg, mem где је првим операндом дат изворишни регистар (reg), а другим одредиште. На располагању стоји 8 регистара опште намене. Претпоставити да су сви подаци и адресе исте дужине која је једнака адресибилној јединици. На располагању стоје и сложене инструкције.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
! stek raste nanize, SP pokazuje na poslednju zauzetu&lt;br /&gt;
! rezultat se vraca kroz Rres&lt;br /&gt;
&lt;br /&gt;
! *src		+3&lt;br /&gt;
! *dst		+2&lt;br /&gt;
! PCret		+1&lt;br /&gt;
! BP		+0&lt;br /&gt;
&lt;br /&gt;
ST BP, -(SP)&lt;br /&gt;
ADD BP, SP, #0&lt;br /&gt;
!backup registara&lt;br /&gt;
ST Rd, -(SP)&lt;br /&gt;
ST Rl, -(SP)&lt;br /&gt;
ST Rs, -(SP)&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj dst&lt;br /&gt;
LD Rd, (BP)2&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rd, &#039;\0&#039;&lt;br /&gt;
SUB Rd, Rd, #1&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj src (radi brojanja karaktera)&lt;br /&gt;
LD Rs, (BP)3&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rs, &#039;\0&#039;&lt;br /&gt;
LD Rres, (BP)3&lt;br /&gt;
SUB Rl, Rs, Rres&lt;br /&gt;
SUB Rres, Rs, Rres&lt;br /&gt;
LD Rs, BP(3)&lt;br /&gt;
&lt;br /&gt;
!kopiranje niza&lt;br /&gt;
MOVEC Rl, Rs, Rres, Rd, &#039;\0&#039;&lt;br /&gt;
LD Rres, (BP)2&lt;br /&gt;
&lt;br /&gt;
!restauracija registara&lt;br /&gt;
LD Rs, (SP)+&lt;br /&gt;
LD Rl, (SP)+&lt;br /&gt;
LD Rd, (SP)+&lt;br /&gt;
LD BP, (SP)+&lt;br /&gt;
RTS&lt;br /&gt;
&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
У рачунарском систему се налази једноадресни процесор, меморија и периферије PER0, и PER1. Периферији PER0 је придружен DMA0 контролер. Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Узети да је тип података &#039;&#039;&#039;int&#039;&#039;&#039; дужине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су преклопљени. Адресе релевантних регистара периферија PER0 и DMA0 контролера су:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| PER0_CONTROL || F000h || DMA0_CONTROL || F003h || PER1_CONTROL || F010h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_STATUS  || F001h || DMA0_STATUS  || F004h || PER1_STATUS  || F011h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_DATA    || F002h || DMA0_DATA    || F005h || PER1_DATA    || F012h&lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_ADDR    || F006h ||              || &lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_CNT     || F007h ||              || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У управљачким регистрима бит 0 је &#039;&#039;Start&#039;&#039; којим се дозвољава почетак операције, бит 1 одређују тип преноса података (1 - улаз (&#039;&#039;input&#039;&#039;), 0-излаз (&#039;&#039;output&#039;&#039;)), бит 2 је &#039;&#039;Enable&#039;&#039; којим се дозвољава прекид. Бит 3 управљачког регистра контролера DMA0 се задаје режим рада (0-блоковски (&#039;&#039;burst&#039;&#039;), 1-циклус по циклус (&#039;&#039;cycle stealing&#039;&#039;)). Битови од 4 до 7 управљачког регистра DMA0 контролера садрже вредност за колико се увећава адресни регистар након сваког пренетог податка. У статусним регистрима бит 0 је &#039;&#039;Ready&#039;&#039; који сигнализира спремност контролера периферије.&lt;br /&gt;
&lt;br /&gt;
Написати главни програм, одговарајући потпрограм и прекидне рутине којима се обавља следећи пренос.&lt;br /&gt;
&lt;br /&gt;
Са периферија PER0 и PER1 упоредо се шаљу елементи низа. Низ се смешта у меморију почев од адресе 1000h и има 100h елемената. Периферија PER0 шаље елементе које треба смештати на места у низу са парним индексом, а елементе са PER1 треба смештати на места са непарним индексом.&lt;br /&gt;
&lt;br /&gt;
Након пријема низа, периферији која је прва завршила слање шаље се комплетан неопадајуће сортирани низ. За сортирање низа потребно је имплементирати и на одговарајућем месту у програму позвати функцију &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;void sort (int* arrAddr, int length)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Где је &amp;lt;code&amp;gt;arrAddr&amp;lt;/code&amp;gt; адреса низа, а &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; дужина низа. Не треба водити рачуна који алгоритам се користи за сортирање.&lt;br /&gt;
&lt;br /&gt;
Примање елемента са периферије PER0 реализовати коришћењем DMA0 контролера у блоковском режиму рада, а евентуално слање сортираног низа коришћењем DMA0 контролера у режиму циклус по циклус. Примање елемената са PER1 и евентуално слање сортираног низа на PER1 реализовати коришћењем механизма прекида.&lt;br /&gt;
&lt;br /&gt;
Сматрати да су доступни регистри XR, BP и SP приликом писања потпрограма, као и да је дозвољено регистарско индиректно адресирање са регистром XR. Обратити пажњу да потпрограм не сме да користи глобалне променљиве, већ само параметре потпрограма и локалне променљиве. Позивалац потпрограма је дужан да уклони параметре са стека. Процесор не поседује регистре опште намене, као ни регистар IMR. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно.&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&lt;br /&gt;
[[Категорија:Рокови]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4411</id>
		<title>Архитектура рачунара/Јул 2021</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%88%D1%83%D0%BB_2021&amp;diff=4411"/>
		<updated>2022-06-14T22:27:35Z</updated>

		<summary type="html">&lt;p&gt;Akili: Решење 3. задатка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{нерешено}}&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Нацртати структуру контролера улазно/излазне периферије са директним приступом меморији. &lt;br /&gt;
# Објаснити функцију свих делова контролера. &lt;br /&gt;
# Објаснити којим битовима и у којим регистрима се задају могући режими рада контролера и добијају информације како се одвија пренос података.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Контролер излазне периферије и излазна периферија за међусобно повезивање користе паралелни интерфејс који се састоји од линија података, једне статусне линије и једне управљачке линије. Статусном линијом излазна периферија даје индикацију контролеру периферије да ли је спремна да прими податак који је доступан на линијама података, док контролер периферије управљачком линијом обезбеђује читање податка са линија података у свој интерни регистар. Навести по ком редоследу се наведене линије користе за синхронизацију и слање података из контролера периферије на периферију. Одговор дати табеларно. Назначити која је почетна вредност на овим линијама.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Редослед&lt;br /&gt;
| Линија(статусна/управљачка/подаци)&lt;br /&gt;
| Вредност&lt;br /&gt;
| Значење&lt;br /&gt;
| Ко поставља&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој C функцији која надовезује низ &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; на крај низа &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; char *strcat (char *dest, const char *src);&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
Функција као резултат враћа показивач на резултујући низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt; . Претпоставити да је низ &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;  довољне величине да се у њега може сместити резултујући низ, као и да нема преклапања између &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;dest&amp;lt;/code&amp;gt;. Ha располагању је процесор код кога аритметичке, логичке и померачке инструкције имају формат: OC reg, reg, reg/imm где је ОС код операције, одредишни операнд и морају бити у регистру (reg), док други може бити или у регистру или дат непосредно (reg/imm). Инструкција LOAD има формат: LOAD reg, mem где је првим операндом дат одредишни регистар (reg), a другим извориште. Инструкција STORE има формат: STORE reg, mem где је првим операндом дат изворишни регистар (reg), а другим одредиште. На располагању стоји 8 регистара опште намене. Претпоставити да су сви подаци и адресе исте дужине која је једнака адресибилној јединици. На располагању стоје и сложене инструкције.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
! stek raste nanize, SP pokazuje na poslednju zauzetu&lt;br /&gt;
! rezultat se vraca kroz Rres&lt;br /&gt;
&lt;br /&gt;
! *src		+3&lt;br /&gt;
! *dst		+2&lt;br /&gt;
! PCret		+1&lt;br /&gt;
! BP		+0&lt;br /&gt;
&lt;br /&gt;
ST BP, -(SP)&lt;br /&gt;
ADD BP, SP, #0&lt;br /&gt;
!backup registara&lt;br /&gt;
ST Rd, -(SP)&lt;br /&gt;
ST Rl, -(SP)&lt;br /&gt;
ST Rs, -(SP)&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj dst&lt;br /&gt;
LD Rd, (BP)2&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rd, &#039;\0&#039;&lt;br /&gt;
SUB Rd, Rd, #1&lt;br /&gt;
&lt;br /&gt;
!pronadji kraj src (radi brojanja karaktera)&lt;br /&gt;
LD Rs, (BP)3&lt;br /&gt;
LD Rl, #MAX_VAL&lt;br /&gt;
LOCC Rl, Rs, &#039;\0&#039;&lt;br /&gt;
LD Rres, (BP)3&lt;br /&gt;
SUB Rl, Rs, Rres&lt;br /&gt;
SUB Rres, Rs, Rres&lt;br /&gt;
LD Rs, BP(3)&lt;br /&gt;
&lt;br /&gt;
!kopiranje niza&lt;br /&gt;
MOVEC Rl, Rs, Rres, Rd, &#039;\0&#039;&lt;br /&gt;
LD Rres, (BP)2&lt;br /&gt;
&lt;br /&gt;
!restauracija registara&lt;br /&gt;
LD Rs, (SP)+&lt;br /&gt;
LD Rl, (SP)+&lt;br /&gt;
LD Rd, (SP)+&lt;br /&gt;
LD BP, (SP)+&lt;br /&gt;
RTS&lt;br /&gt;
&lt;br /&gt;
...&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
У рачунарском систему се налази једноадресни процесор, меморија и периферије PER0, и PER1. Периферији PER0 је придружен DMA0 контролер. Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Узети да је тип података &#039;&#039;&#039;int&#039;&#039;&#039; дужине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су преклопљени. Адресе релевантних регистара периферија PER0 и DMA0 контролера су:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| PER0_CONTROL || F000h || DMA0_CONTROL || F003h || PER1_CONTROL || F010h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_STATUS  || F001h || DMA0_STATUS  || F004h || PER1_STATUS  || F011h&lt;br /&gt;
|-&lt;br /&gt;
| PER0_DATA    || F002h || DMA0_DATA    || F005h || PER1_DATA    || F012h&lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_ADDR    || F006h ||              || &lt;br /&gt;
|-&lt;br /&gt;
|              ||       || DMA0_CNT     || F007h ||              || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У управљачким регистрима бит 0 је &#039;&#039;Start&#039;&#039; којим се дозвољава почетак операције, бит 1 одређују тип преноса података (1 - улаз (&#039;&#039;input&#039;&#039;), 0-излаз (&#039;&#039;output&#039;&#039;)), бит 2 је &#039;&#039;Enable&#039;&#039; којим се дозвољава прекид. Бит 3 управљачког регистра контролера DMA0 се задаје режим рада (0-блоковски (&#039;&#039;burst&#039;&#039;), 1-циклус по циклус (&#039;&#039;cycle stealing&#039;&#039;)). Битови од 4 до 7 управљачког регистра DMA0 контролера садрже вредност за колико се увећава адресни регистар након сваког пренетог податка. У статусним регистрима бит 0 је &#039;&#039;Ready&#039;&#039; који сигнализира спремност контролера периферије.&lt;br /&gt;
&lt;br /&gt;
Написати главни програм, одговарајући потпрограм и прекидне рутине којима се обавља следећи пренос.&lt;br /&gt;
&lt;br /&gt;
Са периферија PER0 и PER1 упоредо се шаљу елементи низа. Низ се смешта у меморију почев од адресе 1000h и има 100h елемената. Периферија PER0 шаље елементе које треба смештати на места у низу са парним индексом, а елементе са PER1 треба смештати на места са непарним индексом.&lt;br /&gt;
&lt;br /&gt;
Након пријема низа, периферији која је прва завршила слање шаље се комплетан неопадајуће сортирани низ. За сортирање низа потребно је имплементирати и на одговарајућем месту у програму позвати функцију &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;void sort (int* arrAddr, int length)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Где је &amp;lt;code&amp;gt;arrAddr&amp;lt;/code&amp;gt; адреса низа, а &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; дужина низа. Не треба водити рачуна који алгоритам се користи за сортирање.&lt;br /&gt;
&lt;br /&gt;
Примање елемента са периферије PER0 реализовати коришћењем DMA0 контролера у блоковском режиму рада, а евентуално слање сортираног низа коришћењем DMA0 контролера у режиму циклус по циклус. Примање елемената са PER1 и евентуално слање сортираног низа на PER1 реализовати коришћењем механизма прекида.&lt;br /&gt;
&lt;br /&gt;
Сматрати да су доступни регистри XR, BP и SP приликом писања потпрограма, као и да је дозвољено регистарско индиректно адресирање са регистром XR. Обратити пажњу да потпрограм не сме да користи глобалне променљиве, већ само параметре потпрограма и локалне променљиве. Позивалац потпрограма је дужан да уклони параметре са стека. Процесор не поседује регистре опште намене, као ни регистар IMR. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно.&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&lt;br /&gt;
[[Категорија:Рокови]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2019&amp;diff=4259</id>
		<title>ПОС/Лаб 1 2019</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2019&amp;diff=4259"/>
		<updated>2022-04-05T21:26:38Z</updated>

		<summary type="html">&lt;p&gt;Akili: unapređenje male razmere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
Лаб 1 се појављује у &#039;&#039;&#039;другом&#039;&#039;&#039; термину вежби.&lt;br /&gt;
{{решења}}&lt;br /&gt;
&lt;br /&gt;
== Група 3 ==&lt;br /&gt;
=== Задатак 1 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(3п)&#039;&#039;&#039; Написати скрипту која исписује &#039;&#039;username&#039;&#039; корисника који је покрене.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo $USER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 2 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(4п)&#039;&#039;&#039; Написати команду које помоћу програма &#039;&#039;bzip2&#039;&#039; компресују све фајлове из текућег директоријума који се завршавају са &#039;&#039;~&#039;&#039;. Сваки фајл треба да буде засебно компресован. Затим написати команде које све новодобијене фајлове пребацују директоријум &#039;&#039;arhiva&#039;&#039;. Директоријум &#039;&#039;arhiva&#039;&#039; не постоји, као ни други компесовани&amp;lt;sub&amp;gt;[sic]&amp;lt;/sub&amp;gt; фајлови у текућем директоријуму.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
mkdir arhiva; bzip2 ./*~; mv *.bz2 arhiva&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 3 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(7п)&#039;&#039;&#039; Написати команде које у фајлу &#039;&#039;&#039;/proc/cpuinfo&#039;&#039;&#039; проналазе и штампају број из друге линије која садржи реч &#039;&#039;MHz&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
grep &#039;MHz&#039; /proc/cpuinfo | head -n 2 | tail -n 1 | tr -s &#039; &#039; &#039; &#039; | cut -d&#039; &#039; -f3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
grep &#039;MHz&#039; /proc/cpuinfo | tail -n +1 | tr -s &#039; &#039; &#039; &#039; | cut -d&#039; &#039; -f3&lt;br /&gt;
# tail -n +1  -  ignoriše prvu liniju ispisa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:ПОС]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2018&amp;diff=4255</id>
		<title>ПОС/Лаб 1 2018</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D0%9E%D0%A1/%D0%9B%D0%B0%D0%B1_1_2018&amp;diff=4255"/>
		<updated>2022-04-05T11:59:11Z</updated>

		<summary type="html">&lt;p&gt;Akili: Ponuđeno drugo, tačnije rešenje (zbog uslova zadatka)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
Лаб 1 се појављује у &#039;&#039;&#039;другом&#039;&#039;&#039; термину вежби.&lt;br /&gt;
{{решења}}&lt;br /&gt;
&lt;br /&gt;
== Група 3 ==&lt;br /&gt;
=== Задатак 1 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(3п)&#039;&#039;&#039; Написати команде које исписују број процеса које је покренуо текући корисник (текући корисник је онај који извршава команде и не мора да буде баш pos).&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
ps aux | grep -c &amp;quot;^$USER&amp;quot;&lt;br /&gt;
# tačno je i bez &#039;^&#039; znaka, ali preciznije je sa njim. takođe može da se uradi sa grep &amp;quot;^$USER&amp;quot; | wc -l&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 2 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(4п)&#039;&#039;&#039; Написати команде које помоћу програма &#039;&#039;gzip&#039;&#039; компресују све скривене фајлове из корисничког директоријума у фајл &#039;&#039;skriveni.tar.gz&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
tar -czf &#039;skriveni.tar.gz&#039; .*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Задатак 3 ===&lt;br /&gt;
==== Поставка ====&lt;br /&gt;
&#039;&#039;&#039;(7п)&#039;&#039;&#039; Написати команде које проналазе број фајлова са различитим именом у систему, који имају екстензију &#039;&#039;.txt&#039;&#039; и који су трећи потомак кореног директоријума. Нпр. &#039;&#039;f1.txt&#039;&#039; је трећи потомак ако му је пуна путања &#039;&#039;/home/pos/f1.txt&#039;&#039;. (Напомена: тачка је специјални знак за команду &#039;&#039;grep&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==== Решење ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
find / -name &amp;quot;*.txt&amp;quot; | cut -d&#039;/&#039; -f4 | uniq -c&lt;br /&gt;
# umesto uniq -c može uniq | wc -l&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;plain&amp;quot;&amp;gt;&lt;br /&gt;
find / -mindepth 3 -maxdepth 3 -name &amp;quot;*.txt&amp;quot; 2&amp;gt; /dev/null | wc -l&lt;br /&gt;
# ovo rešenje se čini tačnijim (traže se samo 3. potomci)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:ПОС]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A0%D0%A22/%D0%9B%D0%B0%D0%B1_3_2022&amp;diff=4020</id>
		<title>ОРТ2/Лаб 3 2022</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A0%D0%A22/%D0%9B%D0%B0%D0%B1_3_2022&amp;diff=4020"/>
		<updated>2022-02-22T13:03:49Z</updated>

		<summary type="html">&lt;p&gt;Akili: Исправка екстензије решења прве модиф.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&lt;br /&gt;
== Поставка ==&lt;br /&gt;
Десетак дана пред лабораторијску вежбу излази поставка домаћег задатка. Поставка се може нађи на&lt;br /&gt;
[https://rti.etf.bg.ac.rs/rti/ir2ort2/laboratorija/20212022/ORT2_Domaci_Lab3.pdf сајту предмета]. Ово је уједно и поставка лабораторијске вежбе. На лабораторијској вежби долази израда једне од инструкција која је била за домаћи.&lt;br /&gt;
&lt;br /&gt;
== Решења ==&lt;br /&gt;
&#039;&#039;Решења су израђена при спремању за лаб. вежбу и не гарантују најефикаснију израду задатка (на одбрани је било тражено само да задатак ради исправно).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== MOD ===&lt;br /&gt;
[[Датотека:MOD Dijagram ORT2 L3 2022.png|none|мини|MOD дијаграм]]&lt;br /&gt;
Excel фајл са микропрограмом, као и .circ фајлови шеме: &lt;br /&gt;
[[Датотека:ORT2 L3 2022 MOD.zip|мини|ORT2 L3 2022 MOD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Лаборатијска вежба ==&lt;br /&gt;
==== Редован термин ====&lt;br /&gt;
У редовном термину треће лабораторијске вежбе дошле су израда инструкција MOD (СИ) и POW2 (ИР).&lt;br /&gt;
&lt;br /&gt;
==== Прва надокнада - јануарски рок 21/22 ====&lt;br /&gt;
На првој надокнадни треће лабораторијске вежбе дошла је израда инструкција STRREV (сви одсеци).&lt;br /&gt;
&lt;br /&gt;
==== Друга надокнада - фебруарски рок 21/22 ====&lt;br /&gt;
Биће додато након одржане надокнаде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категорија:ОРТ2]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:ORT2_L3_2022_MOD.zip&amp;diff=4019</id>
		<title>Датотека:ORT2 L3 2022 MOD.zip</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:ORT2_L3_2022_MOD.zip&amp;diff=4019"/>
		<updated>2022-02-22T13:02:41Z</updated>

		<summary type="html">&lt;p&gt;Akili: Отпремљено кроз дијалог за отпремање датотека.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{file&lt;br /&gt;
| description = Excel mikroprogram i .circ fajlovi&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%A0%D0%A22/%D0%9B%D0%B0%D0%B1_3_2022&amp;diff=4018</id>
		<title>ОРТ2/Лаб 3 2022</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%A0%D0%A22/%D0%9B%D0%B0%D0%B1_3_2022&amp;diff=4018"/>
		<updated>2022-02-22T12:28:53Z</updated>

		<summary type="html">&lt;p&gt;Akili: Додато решење прве модификације&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&lt;br /&gt;
== Поставка ==&lt;br /&gt;
Десетак дана пред лабораторијску вежбу излази поставка домаћег задатка. Поставка се може нађи на&lt;br /&gt;
[https://rti.etf.bg.ac.rs/rti/ir2ort2/laboratorija/20212022/ORT2_Domaci_Lab3.pdf сајту предмета] ([[Датотека:ORT2 Zadatak L3 2022.pdf]]). Ово је уједно и поставка лабораторијске вежбе. На лабораторијској вежби долази израда једне од инструкција која је била за домаћи.&lt;br /&gt;
&lt;br /&gt;
== Решења ==&lt;br /&gt;
&#039;&#039;Решења су израђена при спремању за лаб. вежбу и не гарантују најефикаснију израду задатка (на одбрани је било тражено само да задатак ради исправно).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== MOD ===&lt;br /&gt;
[[Датотека:MOD Dijagram ORT2 L3 2022.png|none|мини|MOD дијаграм]]&lt;br /&gt;
Excel фајл са микропрограмом, као и .circ фајлови шеме: &lt;br /&gt;
[[Датотека:MOD ORT2 L3 2022.rar|none|MOD_Excel_Circ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Лаборатијска вежба ==&lt;br /&gt;
==== Редован термин ====&lt;br /&gt;
У редовном термину треће лабораторијске вежбе дошле су израда инструкција MOD (СИ) и POW2 (ИР).&lt;br /&gt;
&lt;br /&gt;
==== Прва надокнада - јануарски рок 21/22 ====&lt;br /&gt;
На првој надокнадни треће лабораторијске вежбе дошла је израда инструкција STRREV (сви одсеци).&lt;br /&gt;
&lt;br /&gt;
==== Друга надокнада - фебруарски рок 21/22 ====&lt;br /&gt;
Биће додато након одржане надокнаде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категорија:ОРТ2]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:ORT2_L3_2022_dijagram_MOD.png&amp;diff=4015</id>
		<title>Датотека:ORT2 L3 2022 dijagram MOD.png</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:ORT2_L3_2022_dijagram_MOD.png&amp;diff=4015"/>
		<updated>2022-02-22T11:26:09Z</updated>

		<summary type="html">&lt;p&gt;Akili: Отпремљено кроз дијалог за отпремање датотека.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{file&lt;br /&gt;
| description = Dijagram za MOD algoritam&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Akili</name></author>
	</entry>
</feed>