You are on page 1of 4

Задатак 1 – Формати машинских инструкција

§ Које од понуђених решења на једноадресној


машини одговара израчунавању истог израза
задатог следећим програмским сегментом на
двоадресној машини?
MOV E, C
– Припрема за колоквијум –
DIV E, D
ADD E, B
MUL E, A

A) B) C)
LOAD C LOAD A LOAD D
DIV D MUL B DIV C
ADD B ADD C ADD B
MUL A DIV D MUL A
STORE E STORE E STORE E

Програмирање 1, ЕТФ – 2012 2/13

Задатак 1 – Формати машинских инструкција Задатак 1 – Формати машинских инструкција

§ Код на 2А машини: § Зашто друга два одговора нису тачна?


MOV E, C § Одговор: B
DIV E, D LOAD A
MUL B
ADD E, B
ADD C
MUL E, A
DIV D
§ Израз: STORE E
E:=(C/D + B)*A § Израз:
Е:=(A*B + C)/D
§ Решење: A
§ Одговор: C
1A računar: 0A računar: 3A računar: LOAD D
LOAD C PUSH D DIV E, C, D
DIV C
DIV D PUSH C ADD E, E, B
ADD B
ADD B DIV MUL E, E, A
MUL A
MUL A PUSH B
STORE E
STORE E ADD
PUSH A § Израз:
MUL E:=(D/C + B)*A
POP E
Програмирање 1, ЕТФ – 2012 3/13 Програмирање 1, ЕТФ – 2012 4/13
Задатак 2 – Булова алгебра Задатак 3 – Булова алгебра

§ Којем од понуђених израза Булове алгебре је § Довољан услов да вредност следећег израза
еквивалентан израз a ⋅ (b + c ) ⋅ (b + c ) ⋅ (a + c ) ? a ⋅ b ⋅ c + b ⋅ e + d ⋅ ( a ⋅ b + c + a + e)
§ Решења: Булове алгебре (над скупом Б={0,1}) буде 1 је:
A) a ⋅b ⋅c B) a ⋅b ⋅c C) a ⋅b ⋅c A) c = 1, e = 0 (B) d = 1, e = 0 C) c = 1, d = 1

a ⋅ (b + c ) ⋅ (b + c ) ⋅ (a + c ) = A) ab ⋅1 + b ⋅ 0 + d ( a ⋅ b + 1 + a + 0) =
( a + ( b + c )) ⋅ ( b + c ) ⋅ ( a + c ) = ab + b + d (a ⋅ 0 + a ) =
(a ⋅ (b + c ) + 0 ) ⋅ (a + c ) = a b + b + ad =
a ⋅ (b + c ) ⋅ (a + c ) = a + b + ad =
(a a + a c ) ⋅ (b + c ) = a+b+d
ab c + ac c = ab c

Програмирање 1, ЕТФ – 2012 5/13 Програмирање 1, ЕТФ – 2012 6/13

Задатак 3 – Булова алгебра Задатак 4 – Цели бројеви

B) abc + b ⋅ 0 + 1(a(b + c) + a + 0) = § Посматра се рачунар који ради са целим


abc + b + abc + a = бројевима представљеним у другом комплементу.
a b( c + c ) + a + b = Ако збир бројева вредности 58610 и 1B516 даје
вредност MAXINT, како се онда представља
(a + b)(a + a ) + b = MININT на посматраном рачунару?
a+b+b = A) 102310 B) 40016 C) 80016
a +1 = 1
C) 1B516 = 43710
ab ⋅1 + be + 1 ⋅ ( a ⋅ b + 1 + a + e) = ab + be + a e =
58610 + 43710 = 102310 (=MAXINT!)
( ab + a )( ab + e) + be = 102310 =011111111112
( a + a )(a + b)(a b + e) + be = MININT=100 0000 00002=40016
a e + ab + be + be =
a e + ab + e =
ab + e
Програмирање 1, ЕТФ – 2012 7/13 Програмирање 1, ЕТФ – 2012 8/13
Задатак 5 – picoComputer Задатак 5 – picoComputer

§ Шта исписује следећи програм на симболичком § Први део кода чита податке: 0
машинском језику за picoComputer, ако се редом N=1 1 (N) 6

уносе вредности 6, 1, 4, 5, 3, 5, 2? adrA = 2 2 (adrA) 100


I=3 3 (I)
a) 1 4 5 3 5 b) 6 1 4 3 2 (c) 1 4 3 2 5
M=4 4 (M)
A=100 5
N = 1 JSR PP1 PP1: MOV M,(adrA)
adrA = 2 MOV I,0 MOV I,1 ORG 8 6
I = 3 MOV adrA,#A ADD adrA,adrA,1 IN N ; читање дужине низа 7
M = 4 L1: BEQ M,(adrA),L2 P1: BGT M,(adrA),P2
MOV adrA,#A ; постављање почетне адресе ...
A=100 OUT (adrA) MOV M,(adrA)
IN (adrA),N ; читање елемената низа 100 1
ORG 8 L2: ADD adrA,adrA,1 P2: ADD adrA,adrA,1
4
IN N
MOV adrA,#A
ADD I,I,1
BGT N,I,L1
ADD
BGT
I,I,1
N,I,P1
§ Улаз:
5
IN (adrA),N STOP M RTS • N = 6 (први податак је дужина низа)
3
• 1 4 5 3 5 2 (елементи низа)
5
2

Програмирање 1, ЕТФ – 2012 9/13 Програмирање 1, ЕТФ – 2012 10/13

Задатак 5 – picoComputer Задатак 5 – picoComputer

§ Потпрограм тражи максимални елемент § Последњи део кода ради испис резултата:
у задатом низу: • Пролази кроз цео низ и исписује оне који се разликују од максимума
PP1: МOV M, (adrA) ; поставља први елемент као максимални • Затим исписује максимални елемент
MOV I, 1 ; помери се на следећи елемент JSR PP1 ; позив потпрограма
ADD adrA, adrA,1 MOV I, 0 ; ресетовање бројача
MOV adrA, #A ; ресетовање почетне адресе низа
P1: BGT M, (adrA), P2 ; проверава да ли је текући елемент
; већи од тренутног максимума L1: BEQ M, (adrA), L2 ; ако је елемент једнак максимуму,
MOV M, (adrA) ; ако јесте пребацује га у М ; прескочи га за испис
OUT (adrA) ; испиши елемент
P2: ADD adrA, adrA, 1 ; помери се на следећи елемент L2: ADD adrA, adrA, 1 ; помери се на следећи елемент
АDD I, I, 1 ADD I, I, 1
BGT N, I, P1 ; враћа се на P1 док није обрадио BGT N, I, L1 ; враћа се на L1 док није исписао све
; све елементе
STOP M ; исписује М и зауставља програм
RTS ; повратак из потпрограма
§ Одговор: C
Програмирање 1, ЕТФ – 2012 11/13 Програмирање 1, ЕТФ – 2012 12/13
Задатак 6 – picoComputer

§ Која од следећих тврђења су тачна на


симболичком машинском језику рачунара pC?

A) Инструкција ADD A, #A, 10 је исправна.


Инструкција није исправна, јер су и #A и 10 константе,
а није дозвољено ставити две константе у инструкцију.

B) Инструкција MOV #A, B смешта вредност са локације B


на локацију чија се адреса налази у локацији A.
Први операнд инструкције MOV може бити само меморијска локација
којој се приступа директним или индиректним меморијским адресирањем.

C) Приликом скока у потпрограм вредност регистра PC се не мења.


Вредност регистра PC се приликом скока на потпрограм поставља
на адресу прве инструкције унутар потпрограма.

§ Одговор: N
Програмирање 1, ЕТФ – 2012 13/13

You might also like