You are on page 1of 19

Predmet: Arhitektura procesora

Predavač: prof. Violeta Tomašević

Formati instrukcija

VEŽBE
Zadatak 1

Na koji način će 32-bitna reč

0x00ABCDEF

biti smeštena u 8-bitnu memoriju na adresi 100,


ako procesor podržava upis po principu:

a) big-endian

b) little-endian
Rešenje 1

a) big-endian b) little-endian

Adresa Sadržaj Adresa Sadržaj


... ... ... ...

100 0x00 100 0xEF


101 0xAB 101 0xCD
102 0xCD 102 0xAB
103 0xEF 103 0x00
... ... ... ...
Zadatak 2

Na raspolaganju je memorija koja se sastoji od lokacija kapaciteta 1B,


a organizovana je u vidu 32-bitnih mem. reči po big-endian principu.

Program čita ASCII karaktere koji se unose putem tastature i


upisuje ih u uzastopne lokacije počevši od adrese 500.

Odrediti sadržaj dve memorijske reči koje se nalaze na


adresama 500 i 504 nakon unosa reči „Podmornica“.

Kakav bi bio sadržaj ovih memorijskih reči, ako bi memorija


bila organizovana po little-endian principu?

ASCII a c d i m n o P r
HEX 61 63 64 69 6D 6E 6F 50 72
Rešenje 2

Adresa Sadržaj
big-endian
... ...
Sadržaj memorije nakon unosa reči

500 0x50
adresa 500 : 0x506F646D
501 0x6F
502 0x64 adresa 504 : 0x6F726E69
“Podmornica”

503 0x6D
504 0x6F
505 0x72
little-endian
506 0x6E
507 0x69 adresa 500 : 0x6D646F50
508 0x63
509 0x61 adresa 504 : 0x696E726F
... …
Zadatak 3

Napisati program za izračunavanje vrednosti izraza

Y = (A + B)∙C

koji se može izvršavati na procesoru koji podržava:


a) 0-adresni format instrukcije
b) 1-adresni format instrukcije
c) 2-adresni format instrukcije
d) 3-adresni format instrukcije

Polazne pretpostavke:

 dvoadresni format instrukcije ima oblik [OC | SRC1/DST | SRC2]


 troadresni format instrukcije ima oblik [OC | SRC1 | SRC2 | DST]
Rešenje 3

a) 0-adresni format: c)c) 2-adresni format:


stek d) registar R1/izmenjeni operandi
PUSH A MOV A,R1 ADD A,B
PUSH B ADD R1,B MUL A,C
ADD MUL R1,C MOV A,Y
MOV R1,Y
PUSH C
MUL
POP Y

b) 1-adresni format: d)d) 3-adresni format:


akumulator e) neizmenjeni operandi
LOAD A ADD A,B,Y
ADD B MUL Y,C,Y
MUL C
STORE Y
Zadatak 4

Napisati program za izračunavanje vrednosti izraza

Y = A∙B + B∙C + A∙C

koji se može izvršavati na procesoru koji podržava:


a) 0-adresni format instrukcije
b) 1-adresni format instrukcije
c) 2-adresni format instrukcije
d) 3-adresni format instrukcije

Polazne pretpostavke:

 svi operandi su u memoriji


 dvoadresni format instrukcije ima oblik [OC | SRC1/DST | SRC2]
 troadresni format instrukcije ima oblik [OC | SRC1 | SRC2 | DST]
Rešenje 4

Pojednostavljenje izraza: Y = A∙B + B∙C + A∙C = (B + C)∙A + B∙C

a) 0-adresni format: stek b) 1-adresni format: akumulator

PUSH B LOAD B
PUSH C ADD C
ADD MUL A
PUSH A STORE Y
MUL LOAD B
PUSH B MUL C
PUSH C ADD Y
MUL STORE Y
ADD
POP Y
Rešenje 4

Izraz: Y = (B + C)∙A + B∙C

c)c) 2-adresni format: d)d) 3-adresni format:


d) izmenjeni/neizmenjeni operandi e) neizmenjeni operandi

MOV B,Y MOV B,Y ADD B,C,Y


ADD Y,C ADD Y,C MUL Y,A,Y
MUL Y,A MUL Y,A MUL B,C,X
MUL B,C MOV B,X ADD X,Y,Y
ADD Y,B MUL X,C
ADD Y,X
Zadatak 5

Odredi izraz čiju vrednost računa dati program:

PUSH A
PUSH B
ADD
PUSH C
PUSH D
ADD
MUL
POP Y
Rešenje 5

PUSH A \#1 A se stavlja na vrh steka


PUSH B \#2 B se stavlja na vrh steka
ADD \#3 zbir A+B se stavlja na vrh steka
PUSH C \#4 C se stavlja na vrh steka
PUSH D \#5 D se stavlja na vrh steka
ADD \#6 zbir C+D se stavlja na vrh steka
MUL \#7 mnozi se A+B sa C+D i
\ proizvod stavlja na vrh steka
POP Y \#8 Y=(A+B)∙(C+D)
Rešenje 5

Instrukcija Stek Y
#1 A
PUSH A \#1 B
#2
PUSH B \#2 A
ADD \#3 #3 A+B
PUSH C \#4 C
#4
PUSH D \#5 A+B
D
ADD \#6
#5 C
MUL \#7 A+B
POP Y \#8 C+D
#6
A+B
#7 (C+D)∙(A+B)
#8 (C+D)∙(A+B)
Zadatak 6

Odrediti matematički izraz koji realizuje zadati program :

MOV B,Y
ADD Y,C
MUL Y,A
Rešenje 6

MOV B,Y \ Y = B
ADD Y,C \ Y = B+C
MUL Y,A \ Y = (B+C)∙A

Y = (B+C)∙A
Zadatak 7

Koju funkciju realizuje dati program?

LOAD A
DIV B
STORE Y
LOAD C
DIV Y
STORE Y
Rešenje 7

LOAD A \ ACC=A
DIV B \ ACC=A/B
STORE Y \ Y=ACC=A/B
LOAD C \ ACC=C
DIV Y \ ACC=C/Y=C/(A/B)
STORE Y \ Y=ACC=C/(A/B)

Y = Y = C/(A/B) = C∙B/A
Zadatak 8

Naći izraz čiju vrednost računa dati program.

ADD B,C,Y
DIV A,Y,Y
Rešenje 8

ADD B,C,Y \ Y = B+C


DIV A,Y,Y \ Y = A/Y =A/(B+C)

Y = A/(B+C)

You might also like