Radojka Krneta - Osnovi Racunarske Tehnike II Tehnicki Fakultet Cacak
-
Upload
mirko-mirkovic -
Category
Documents
-
view
68 -
download
10
description
Transcript of Radojka Krneta - Osnovi Racunarske Tehnike II Tehnicki Fakultet Cacak
-
II
2006
-
II I 2005/2006 .
. . . . , . .
, . , , , , 2000, .
2006.
-
..
.
n = 8
- -
. 1. (Bus). () - ddress Bus ( ), - Data Bus ( ), - Control Bus ( )
B (Bus)
1.
() ; , , . 2. : 1. (8,16,32) . 2. ( CR).
2.
(R). 1KR = 1024R = 210R 1KB = 210B
1MR = 210KR = 220R 1MB = 220B
1GR = 230R 1GB = 230B
8 , CR = CB, CB (B).
3. : () () () () . RWM - RAM ROM - ; , , . PROM - EPROM - : 1. U ( ) 2. ( ) . - .
. PU (Processing Unit), CU (Control Unit) . 3. . 4. .
Operativna
memorija
ulazno-izlazna
jedinicaProcesor
-
aritmeticko-logicka
jedinica(operaciona)
upravljacka jedinica
.
.
.
operaciona
jedinica
upravljacka
jedinica
R
L
Q
P
K N
T
M
kontroler
periferijska
jedinica
O.J.
.
.
.
.
kontroler
3. 4.
.4 PU CU . P , ; R ; L - ; Q ; ; ; , N . L . . . ( ). .
- CL (Controller) PD (Peripheral Devices) .5. . (, , , plotter-i,)
5. -
: 1. 2. () 3.
- - . : ( -) ( ). .
-
.....
: 1. ()
2. ( ) - (Windows).
- . - : - ( ) - - ( ).
. : OC (Operation Code) . . ( ) . 6..
1 2 6.-
. : 1. 2. 3. U/I . . . . . () . .7. RT . START , (IR). , ( ). . . U/I . , . -. . , . , . . , . ( ). , . , . . START .
-
start
citanje naredbe
odredjivanje adresa
citanje operanada
izvrsavanje naredbe
pamcenje rezultata
odredjivanje adrese
programa prekida
pamcenje registra
prekid
0
1
1
0
ciklus citanja
naredbe
ciklus
dekodovanja
naredbe
ciklus
izvrsavanja
ciklus
prekida
(prekidi)
baza
pripreme
7.
(Von -Neuman) : 1. 2. 3. ( ) 4. , : 1) 2) ( , , , ) 3) 4) ( ). . , .
-
an-1 an-2 a1 a0. . . . . . . .
. .
- -
, : , , , , ( ). - - : ) ) ( , ). (, ). . . , . : ) ) - - N = a n - 1a n - 2 . . . a1a0 = a n - 12 n - 1 a n - 22 n - 2 . . . a121a020 , a n - 1 ( a n - 1 , ) . 8..
8.
N : ) ) ( ) ) ( ) . . 9. 16
-
00
0
0
00 0 0 0 0
00 0 1 0 1
11 01 1 1
10 11 1 1
01 0 0 0 1
01 0 0 0 0
0
0
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
15
15
15
15
15
15
0
+5
- 5
+32767
- 32767
- 32768
OC EAS1 EAS2 EAd
9. 16
a n - 1 a n - 2 . . . a1 a0, -1 - 2 . . . - m +1 a - m = = znak a n - 1 2
n - 1 + a n - 2 2 n - 2 + . . . + a1 2
1 +a0 20 + a - 1 2
- 1 + . . . + a - m + 1 2 - m + 1 + a - m 2
- m
32
37 0,37 10 2
1
7
24 1 .
- -
(. 6.). . . 256 , 1 8 . (Size) (Condition Code) . 1, 2, 4 8 . : 1 - B (Byte); 2 - W (Word); 4 - L (Long Word); 8 - D (Double Long Word).
. . . 10..
10.
-
OC EAS EAd
OC EAs1 EAs2
OC EAs
OC EAd
OC EAs1 EAs2 EAd NA
. ( ( )), . , . EAS1, EAS2 , d . : EAd EAS1 EAS2 , . . . 11..
11.
. . . , . 12.
12. A EAS1 EAS2
11. . 13..
13. A A EAS
. 13. . . .14.
14.
. . (Stack). , . . . . (). . (Next Address) - . 15.
15.
, :
-
OC EAs1 EAs2 EAd NA1 NA2
RiAM
RiAM
NA1 NA2 16.
16.
.
- -
: ) ) ) . . . . . . .
1. Ri .
= Ri
( - 4 ) . DR (Data Registars). 1 2 . .
2. . .
3. Ri . EA = (Ri) Ri
. R. DR AR . DR AR, . . Ri . Ri . , Ri .
-
QAM
Ri dAM
Rj dAM Ri
Ri. .
4. . = (Q)
. .
5. Ri d. Ri d. EA = (Ri) + d
: ) (d - , Ri ) ) (Ri , d ) , . d ( ) , Ri (). Ri (), d . . Ri . . R DR , . GPR , , .
6. - Ri Rj d = (Rj) + (Ri) + d.
7. , - , . () . () . . EA = (Ri), : Ri = (Ri) + S. Ri = (Ri) - S, EA = (Ri).
-
dAM
dAM Ri
operandAM
8. d, , = (PC) +d
d . , . . 9. Ri d EA = (PC) + (Ri) +d
10. .
, . ( 1 ). .
- -
() LIFO - , ( FIFO ). . (Stack Pointer) . ( ) . 17.. , ( ). . . . . . , . , ( ) . . . . . ( ) . . : , . : ) ,) ,) .
-
K.M.
. . .upravljacki signali
F
A
B
SP
vrh steka
dno steka
m + 3
m + 2
m + 1
m
, . . . .
17.
- -
, . , . , . , U/I . . A = A n -1A n - 2 . . . A1A0 F = A + B F A + B
B = B n - 1B n - 2 . . . B1B0 A A + B A A + 1 (. ) . (, , , , , ). . , . 18., : 1. 2. 3. 4. 5.
18.
1. - - : , , , , . 2. - - 16 Fi = f (Ai,Bi) i = n - 1, n - 2, . . ., 1, 0 , F - () . . , ILI, I EXILI .
-
A A A
A AAn - 1
n - 1 0
0
1
1
mikrooperacija
0 1logickiuslovi
3. - - k . k. k = 1.
F IR A (n - 1, 1) IR = 0,1,g,A0
F IL A (n - 2, 0) IL = 0,1,g,An
4. - - , . F A F. () (F 1, F 0). 5. - - .
F + + 1 F ( n -1:1) . ( ).
F + H C + D
F + H F + D . , . , . . ( ). . , , .19. . . . ( ) . ( ) . 20.. , . 19.
20.
-
IBR OBR
MP0
1
15
16
0LD
IB
15:8 7:0
LD
S
8
78
0
OB
W
IF
OF
ide u I
ide u A
ide iz B u IST
CL
ST
CL
dolazi iz I
dolazi iz A
dolazi iz I
dolazi iz B
1. I (). I .21. IBR (Input Buffer Register) OBR (Output Buffer Register), () IF (Input Flag) OF (Output Flag).
21
I IB (Input Bus). 8 IB (7:0), 16 IB (15:0). W: "0"- 8 , "1" - 16 . I 8 (Output Bus). I . . . : IF = 0, I . IB, IF = 1 W. I IB IBR. IBR (7:0) OBR (7:0) () OF. OF = 0, . OF = 0 OBR. , OF. I W. W = 0, IF, W = 1, IBR (15:8) OBR (7:0) OF. OF, I IF. IF = 1, , IF = 0 I. IF = 0, IF = 1. . 22..
-
IF
IBRIB
0
1
OBR(7:0) IBR(7:0)
OF 0
prazan blok
OF
OBR(7:0)IBR(15:8)
OF 0
W
prazan blok
OF
IF 0
0
0
1
1
1
0
22.
. .22. .1, . . . 2. 23. : ( D -).
-
IF
LD (IBR)
0
1
LD (OBR)
CL (OF)
OF
LD (OBR)
CL (OF)
W
OF
CL (IF)
0
0
1
1
1
0
+
.
.
Xi
23. . . 24., i .
24.
3. 23. . . ( Sd ILI ) (IF = 1). ( ). , 0. .
-
+
+
+
+
D CC
C
DD
CD
CD
CD
IFO
FW
OF
LD
(IB
R)
LD
(OB
R)
CL
(OF
)
LD
(OB
R)
CL
(OF
)
CL
(IF
)
25.
-
operaciona jedinica
upravljacka jedinica
P[IB]
Q
[W]
L M
R(OB)
S[IF,OF]
N
ST(IF)
ST(OF)
IF
OF[LD(IBR),LD(OBR)]
4. , Q . , L S . . L . N ( N ). . : - (, , ); ( , .) - , (, - , , , .). - (, ). , . . : L N . N . , . . . . 21. 25. (). . 4. . 26.
26. 1.
22. . . . , -
-
+
na Ai
Bi
Ci
Di
RD(B,A)
RD(C,A)
RD(D,A)
MP
0
Bi
Ci
na Ai
1
E
S1 S2
Bi
Ci
Di
RD(A)
RD(B)
RD(C)
Ai
RD(D)
+
na Ai
na Bi
na Ci
na Di
Mi
. , .
- -
4 n : A = A n - 1 . . .A1A0
B = B n - 1 . . .B1B0
C = C n - 1 . . .C1C0 D = D n - 1 . . . D1D0
. . 27 i - .
27. 4 i-
RD LD(A) ( ). m - ; n - ; I (m - 1)mn ; I 2 ILI mn ; ILI 2 (m - 1)m . 28. 29. ( - ).
I mn
ILI n m ILI . - . ILI , - ILI .
28. i-
NI . 30.
-
Bi
Ci
Di
RD(A)
RD(B)
RD(C)
Ai
RD(D)
na Ai
na Bi
na Ci
na Di
Mi
Bi
Ci
Di
RD(A)
RD(B)
RD(C)
Ai
RD(D)
na Ai
na Bi
na Ci
na Di
Mi
Bi
Ci
Di
RD(A)
RD(B)
RD(C)
Ai
RD(D)
na Ai
na Bi
na Ci
na Di
Mi
29. 30. i-
- . 31. ( , ).
31.
. 32. . , . ( ). RFI , RFO1, RFO2 . () .
-
LD A
LD B
LD C
LD C
0
1
2
3
DC
S1
S2
0
1
2
3
0
1
2
3
MP
MP
S3 S4
S5 S6
E
E
1
1
RFI
RFO1
RFO2
B
ADD
MP
MQ
n - 1
n - 1
A
n - 1
0
0
n-1:0
LD
n-1:0
n - 1
n-1:0
S0S1C0
F B M Q
0 1 2 3 S2
S3
0
n-1:0
0
n-1:0
ILSLLD
IRSRCL
IRSR
INC
ILSLLD
Bn-1
An-1
MQn-1
A0
a b
Cn+1S0S1
CnFn
AnCL
LD
I
32.
- -
(.33.): , , , , , . .
.33. -
-
ST
LD
CL
N Z V CSTLD
CL
ST
LD
CL
ST
LD
CL
I II I
OCR
OEF
OCF.
.
DC
E
LD CL
ST
CL
CL
ST
ADD
SUB
INC
DEC
operation
code
register
operation
enable
flag
operation
complete
flag
S1S2
0 0
0 1
1 0
1 1
F
A + C0
A + B + C0
A - B - C0
A - C0
N - Negative
Z - Zero
V - Overflow
C - Carry
. 34.
. 35.
MULU - DIVU - MULS - DIVS - , Q , . Q , Q . Q . n. ADD . b - . - (B n - 1), MQ - . (. 34.) N, Z, V C 0 1 . N 1 . . Z 0 . . V , . . 1 . ( ) ( ). . 35. OCR . () OCR .
-
A A - B
C Cn
V VSUB
N An-1
Z ZA
OEF 0
OCF 1
A A + B
C Cn
V VADD
ADD
SUB
0
0
1
1
S1S2
0 0
0 1
1 0
1 1
F
A + C0
A - C0
A + B + C 0
A - B - C 0
Cn
Cn
ADD
SUB
IC
IC
VADD = An-1Bn-1Fn-1 + An-1Bn-1Fn-1
VSUB = An-1Bn-1Fn-1 + An-1Bn-1Fn-1
+ +VADD VSUB
ADD SUB
An-1Bn-1
Fn-1
An-1Bn-1
Fn-1
An-1Bn-1
Fn-1
An-1Bn-1
Fn-1
IN
An-1
DAn-1
D - disable
+
An-1
An-2
A0
.
.
.
ZA
DZA
IZ
OEF. OCF.
- -
, . .
S0 = 0
S1 = 1 F = A + B
C0 = 0
36.
n - 1 = 0 B n - 1 = 0 n - 1 = 0 B n - 1 = 1 n - 1 = 1 B n - 1 = 0 n - 1 = 1 B n - 1 = 1
N A n - 1 ( ) ZA = A n - 1+A n-2+. . .+A1+A0
Z ZA
-
A A - 1
V VDEC
A A + 1
V VINC
N An-1
Z ZA
OEF 0
OCF 1
INC
DEC
0
0
1
1
- -
S0S1 = 00 A A + 1 C0 = 1
S0S1 = 11 A A - 1 C0 = 0
.
VINC = A n - 1F n - 1
VDEC = A n - 1F n - 1
37.
- -
. . , : ( ) . . , () .
-
MQ A
A 0,An 0
SC n -1
A A+B
An a + b + C n
A AnA(n-1:1)
MQ A0MQ(n-1:1)
SC SC - 1
MULS
MQ0
SC=0
MQ0
A A - B
An a - b - C n
A AnA(n-1:1)
MQ A0MQ(n-1:1)
N An-1; Z ZA
V 0; C 0
OEF 0; OCF 1
0
1
1
0
1
1
0
0
LD(MQ)
CL(A), CL(An)
LD(SC)
LD(A), LD(An)
SR(A)
SR(MQ)
DEC(SC)
MULS
MQ0
SC=0
MQ0
LD(A), LD(An)
SR(A)
SR(MQ)
LD(N); LD(Z)
CL(V); CL(C)
CL(OCF); ST(OCF)
0
1
1
0
1
1
0
0
38.
39. . 40.. D -.
-
+
+
+
+D
C CC
DD
C C
DD
D D
C CC
D
C
DD
C
MULS
LD(MQ)
CL(A),CL(An)
LD(SC)LD(A)
LD(An)
SR(A),SR(MQ)
DEC(SC)
MQ0
SCMQ
LD(A)
LD(An)
SR(A),
SR(MQ)
LD(N); LD(Z);
CL(V); CL(C);
CL(OEF); CL(OCF)
A
A B B A
pomocni
registar
registar
(1)
registar
(2)
I
II
III
40.
- -
, . , . ,d . , , N,C,Z,V. . . , : - , - , - , - , - , - - . - . 41..
41.
-
MOVE EAS , EAd ( )
d (EAS)
.
CPU -
I/O
N Fn -1
Z ZA = Fn -1+...+F0
VC
.
LOAD AS , Ri Ri - CPU- ( CPU - )
Ri (EAS)
.
I/O
N Fn -1
Z ZA V
C
LOAD STORE MOVE, MOVE LOAD STORE. .
STORE Ri , EAd ( CPU-a )
d ( Ri)
.
I/O
N Fn -1
Z ZA V
C
EXCHG EAS , EAd ( )
d (EAS)*
.
CPU -
( )
PUSH EAS ( , 2 . ( ) L ( ); . , - .
(SP) (EAS)H
(SP+1) (EAS)L
SP (SP +2)
( ) PUSH POP
.
POP EAd ( 2 d, PUSH)
(EAd)L (SP-1)
(EAd)H (SP-2)
SP (SP-2)
( )
()
IN.S Pi Ri ( U/I Pi CPU-a Ri)
Ri (Pi)
: I/O
:
CPU -
( )
IN OUT . ,
-
OUT.S Pi Ri ( CPU-a Ri I/O Pi)
Pi (Ri)
: CPU -
: I/O
( )
: MOVE, LOAD STORE.
CLR.S EAd EAd 0
.
CPU - I/O
N 0
Z 1 V0
C 0
.
SET.S EAd EAd 1
.
CPU - I/O
N 1
Z 0 V0
C 0
.
.
( . ).
ADD.S EAS,
EAd ( )
d
(EAs)+(EAd)
.
CPU - I/O
N F n - 1
Z ZA
VVADD
C C n
. ( ). . . V. ADDC SUBC .
SUB.S EAS,
EAd ( )
d (EAd)-(EAs)
.
CPU - I/O
N F n - 1
Z ZA
VVSUB
C C n
ADDC.S EAS,
EAd ( , - )
d
(EAs)+(EAd) +()
.
CPU - I/O
N F n - 1
Z ZA
VVADD
C C n
-
SUBC.S EAS,
EAd ( ,
d (EAd)-(EAs) -()
.
CPU - I/O
N F n - 1
Z ZA
VVSUB
C C n
CMP.S EAS
, EAd ( , ; SUB)
(EAd) - (EAS)
.
CPU - I/O
N F n - 1
Z ZA
VVSUB
C C n
, ( 1). 1 . ; , Z C, , N,V Z. SUB , .
1
CC
N = 1 N (Negative)
N = 1 NN (Not Negative)
V = 1 O (Overflow) ili V
V = 1 NO (Not Overflow) ili NV
Z = 1 A = B E (Equal) ili Z
Z = 1 A B NE (Not Equal) ili NZ
C = 1 A< B B (Below) ili C
C = 1 A >= B AE (Above or Equal) ili NC
C + Z = 1 A B A (Above)
N V = 1 A < B L (Less)
N V = 1 A >= B GE (Great or Equal)
Z + N V = 1 A B G (Greater)
()
NEG.S EAd
d 0 - (EAd)
. CPU-a
N F n - 1 Z ZA
VVSUB C C n
-
; - -
I/O
INC.S EAd 1 . d (EAd) + 1
.
CPU-a
I/O
N F n - 1 Z ZA
VVINC
DEC.S EAd 1 d (EAd) - 1
.
CPU-a
I/O
N F n - 1 Z ZA
VVDEC
AND.S EAS ,
EAd -
EAd (EAd) (EAS)
.
CPU-a
I/O
N F n - 1 Z ZA V0 C 0
AND, OR EXOR . ( ).
OR.S EAS ,
EAd -
EAd (EAd) (EAS)
.
CPU-a
I/O
N F n - 1 Z ZA V0 C 0
EXOR.S EAS ,
EAd - .
EAd (EAd) (EAS)
.
CPU-a
I/O
N F n - 1 Z ZA V0 C 0
NOT.S EAd .
d (EAd)
NOT .
-
A Cn - 1
AC 0
A C0
AC
0
0
A C
AC
A C
AC
: , CPU-a, I/O .
SR.S # k, EAd ( )
N F n - 1 Z ZA V 0 C A k -1
ASL.S # k, EAd
( )
N F n - 1 Z ZA V VASL C A n k
LSR.S # k, EAd
( )
N F n - 1 Z ZA V V0 C A k -1
LSL.S # k, EAd
( )
N F n - 1 Z ZA V V0 C A n k
ROR.S # k, EAd
( )
N F n - 1 Z ZA V 0 C A k -1
ROL.S # k, EAd
( )
N F n - 1 Z ZA V 0 C A n k
RORC.S # k, EAd
( )
N F n - 1 Z ZA V 0 C A k -1
ROLC.S # k, EAd
( )
N F n - 1 Z ZA V 0 C A n k
k . # . . VASL 1 . A n - 1 , VASL = 0. L LSR VASL. . d. # Ri . k = 1, , . k 2k, 2k. .
0
0000
0 0
0 0 0
00
0 0 01 1
1
1 1
-
1. . .
BTST # i , EAd Z Ai
BSET # i , EAd Z Ai i 1 BCLR # i, EAd Z Ai i 0 BCHG # i, EAd Z Ai i (Ai)
, i i - . Z Ai Z Ai = 0, Ai = 1. Ai Ai Z. Z 0 . , , I/O . , # Ri.
: 1. 2.
d - . d - (Jump and save return address - ) - d. , . - . RTS ( ). C,Z,N V. d , = 1, d, = 0, ( ) . JNC EAd - = 0, d , = 1, .
. (Clear C) C 0 CZ Z 0
SC C 1
SZ Z 0
STOP - WAIT -
-
. , . . ( ). . . : ) (. ) ) (. )
, . , . , , , , . , , . : 1. , 2. 3. . (. d) (RTS,RTNS).
A
PP
B
PP
C
A
priprema PP
B
PPPovratak u
glavni program
-
: . , . , . , . , . . . . . , . , . , . , , , (. I/O , ). . , . : 1. , 2. , 3. . , . . . . . . . . PSW . , PSW. PSW PSW, PSW PSW. . . . . , . ,
-
ZADACI
-
1.1. Osmobitni raunar ima operativnu memoriju kapaciteta 32 Krei. Od koliko linija se sastoji : a) adresna magistrala?
b) magistrala podataka?
Reenje:
Najmanja adresibilna lokacija memorije je re. Binarnom adresom koja se alje preko m
linija adresne magistrale moe se adresirati 2 n adresibilnih memorijskih lokacija. Kapacitet memorije (broj adresibilnih lokacija) je
CM = 2mrei = 25 210 rei = 152 rei
Dakle,
a) Broj linija adresne magistrale je m = 15.
b) Preko magistrale podataka prenose se podaci (rei) u/iz memorije. Broj linija magistrale za podatke jednak je broju bitova podatka (rei) i fiksan je za neki raunar. Kako se ovde radi o 8-bitnom raunaru, to znai da je broj linija magistrale za podatke 8.
1.2. U nekom osmobitnom raunaru svaka naredba je dugaka 3 bajta. Ako se u trenutku izvravanja neke naredbe u brojau naredbi PC nalazi heksadecimalni broj 1D koji e se broj nalaziti u brojau naredbi u trenutku izvravanja prve sledee naredbe? Izraziti oba broja u a) decimalnom, b) BCD brojnom sistemu.
Reenje:
Sadraj brojaa naredbi je adresa prvog bajta naredbe koja se sledea izvrava. Ako je u ovom raunaru svaka naredba dugaka 3 bajta, onda je adresa prvog bajta sledee naredbe a) 1Dxeq = 16
1 + 13 = 2910 ; 2910 + 310 = 3210
b) 1Dxeq = 00011101BCD ; 3210 = 00110010BCD
1.3. Odrediti decimalne i binarne adrese u sluaju ROM memorije koja se sastoji od 1024 rei (elije) duine 1Bajt.
Reenje:
Svaka re (elija) ima svoju adresu - toj lokaciji pridruen broj. Prva elija ima najniu adresu, a svaka sledea elija adresu koja predstavlja broj za 1 vei nego broj - adresu pridruenu prethodnoj lokaciji. 1024 memorijske lokacije bie adresirane sa 1024 razliite adrese, iji je decimalni zapis
0, 1, 2, ..., 1023
Kapacitet ROM memorije je
CM = 1024 bajta = 210 bajta.
-
Dakle, adrese su svih 1024 10-bitnih binarnih rei
0000000000, 0000000001, 0000000010, ...,1111111110, 1111111111
1.4. U nekom raunaru operativna memorija ima kapacitet 1MB. Iz memorije se ita i u memoriju upisuje bajt po bajt. Ako kod operacije zauzima 8 bitova, a polje za naznaku naina adresovanja 4 bita, kolika je duina naredbi sa memorijskim direktnim adresovanjem u ovom raunaru? Kolike su u ovom raunaru duine: a) brojaa naredbi PC? b) adresnog registra memorije MAR? c) prihvatnog registra memorije MBR?
Reenje:
CM = 1 MB = 1 Mre = 220 B
Kod naredbi sa memorijskim direktnim adresovanjem sadraj adresnog dela naredbe je adresa operanda. Kako se podatak koji predstavlja operand moe nai u bilo kojoj od 220 adresibilnih elija, duina naredbi sa memorijskim direktnim adresovanjem u ovom raunaru je
Ln =( 8 + 4 + 20) bita = 32 bita = 4 bajta
a) Kako je sadraj brojaa naredbi PC adresa prvog bajta naredbe koja se sledea izvrava, a bajtovi naredbe se mogu nai u bilo kojoj od 220 memorijskih elija, to je njegova duina
LPC = 20 bita
b) Kako je sadraj adresnog registra MAR adresa memorijske elije iz/u koju se smeta podatak, a bajtovi podataka se mogu nai u bilo kojoj od 220 memorijskih elija, to je njegova duina
LMAR = LPC = 20 bita
c) Kako se u prihvatnom registru MBR smeta podatak na putu u/iz memorije, a iz memorije se ita i u memoriju upisuje bajt po bajt, to je njegova duina
LMBR = 1 B = 8 bita.
1.5. Ako se zna da je kapacitet memorije 65536 rei od koliko linija se mora sastojati adresna magistrala?
Reenje:
Kapacitet memorije koja se adresira preko m linija adresne magistrale je
CM = 2mrei
Za ovaj raunar je
CM = 65 536 rei = 216 rei
-
pa je
LMAR = 16 linija
1.6. Raunar ima naredbe duine 2 Bajta. Kod operacije zauzima prvih 5 bitova, a nain adresiranja sledea 3 bita. a) Koliko razliitih tipova naredbi raunar moe da realizuje i koliko razliitih naina adresiranja moe da ima? b) Kolika je veliina adresnog prostora memorije u kome moe da se nalazi operand pri direktnom memorijskom adresiranju?
c) Kolika je veliina adresnog prostora memorije u kome moe da se nalazi operand pri indirektnom registarskom adresiranju ako je duina registra 2 bajta?
Reenje:
Format naredbi ovog raunara moe se prikazati na sledei nain:
7 6 5 4 3 2 1 0 Drugi
bajt naredbe
nain adresov
kod
operacije
adresni deo
a) Broj razliitih tipova naredbi BN odreen je duinom binarne rei koja predstavlja kod operacije (bitovi od 0 do 4), pa je u ovom sluaju
BN = 25 razliitih naredbi = 32 razliite naredbe,
a broj naina adresiranja Na odreuje duina binarne rei zapisane u polju za naznaku naina adresiranja, pa je u ovom sluaju
Na = 23 naina adresiranja = 8 naina adresiranja
b) Kod naredbi sa memorijskim direktnim adresiranjem adresa operanda je sadraj adresnog dela naredbe, pa kako je duina adresnog dela naredbe 1 bajt, a operand se moe nai bilo gde u memoriji, kapacitet memorije je
CM = 28 rei = 256 rei
c) Kod indirektnog registarskog adresiranja adresa operanda je sadraj registra za indirektno registarsko adresovanje. Kako je njegova duina 2 bajta, njegov sadraj moe adresovati 216 razliitih memorijskih elija, tj.
CM = 216 rei = 65536 rei.
1.7. Neki procesor sadri 24-bitnu adresnu magistralu. Da li se na osnovu ovog podatka moe rei: a) Koliki moe da bude maksimalni kapacitet adresibilne memorije? b) Kolika je duina prihvatnog registra memorije MBR? c) Kolika je duina adresnog registra memorije MAR? d) Kolika je duina pokazivaa steka SP? e) Kolika je duina registra naredbe IR?
-
Reenje:
Preko adresne magistrale prenosi se adresa memorijske lokacije u/iz koje se ita podatak (re), pa se na osnovu njene duine od 24 bita moe rei:
a) CM = 224 rei;
b) Duina prihvatnog reistra se ne moe odrediti jer se ne zna duina rei:
c) LMAR = 24 bita
d) LSP = LMAR = 24 bita
e) Duina registra naredbe IR u koji se smeta proitana naredba se ne moe odrediti jer je nepoznata duina naredbi u ovom raunaru.
1.8. Neki raunar ima naredbe duine 1Bajt. Bit 7 naredbe slui za naznaavanje vrste adresiranja. Bit 6 naredbe slui za naznaavanje registara koji se u adresiranju koriste. Preostali bitovi predstavljaju kod operacije.
a) Koliki je najvei broj razliitih naredbi? b) Koliko naina adresiranja ovaj raunar moe da koristi? c) Koliko registara se moe koristiti u adresiranju?
Reenje:
Na osnovu reenja zadatka 1.6. za ovaj raunar, na osnovu opisanog formata njegovih naredbi, moe se rei:
a) BN = 26 razliitih naredbi = 64 razliite naredbe
b) Na = 21 naina adresiranja = 2 naina adresiranja
c) Kako bit 6 naznaava regstar koji se koristi za adresovanje, mogue je ovim bitom naznaiti dva takva registra, napr.: bit 6 = 0 - koristi se registar X0, bit 6 = 1 - koristi se registar X1.
1.9. Koliko bitova sadri svaka elija operativne memorije ako se zna da kapacitet ove memorije iznosi 3MB, odnosno 1Mre? Napisati najvei heksadecimalni broj koji se moe upisati u eliju ove memorije?
Reenje:
CM = 1Mre = 220rei
CM = 3 MB = 3 220 B = 220 3 B = 220 rei
odakle sledi da elije operativne memorije sadre 3B. Najvei heksadecimalni broj koji se moe upisati u eliju ove memorije je FFFFFF.
-
1.10. U jednoadresnom raunaru koristi se memorijsko indirektno adresiranje. Duina naredbe je 3 Bajta. Sve adrese i operandi su duine 2 Bajta. Iz memorije se ita i u memoriju se upisuje bajt po bajt. Koliki je broj pristupa memoriji u fazi itanja naredbe, odreivanja adrese i itanja operanda?
Reenje:
Kako se iz memorije ita bajt po bajt, u fazi itanja naredbe memoriji se pristupa 3 puta, jer je naredba dugaka 3 bajta. Adresni deo naredbe sadri dvobajtnu adresu adrese operanda, pa se memoriji pristupa 2 puta u fazi odreivanja dvobajtne adrese. Operand je duine je duine 2 bajta pa se u fazi itanja operanda memoriji pristupa 2 puta.
1.11. Kod nekog jednoadresnog raunara zastupljeni su sledei naini adresiranja: neposredno, memorijsko direktno, registarsko indirektno i indeksno adresiranje sa autoinkrementiranjem. Sve
adrese i operandi su duine 2 bajta. Iz memorije se ita i u memoriju upisuje bajt po bajt. Registar za indirektno adresiranje R0 je duine 2 bajta. Duina naredbe je 3 bajta, osim kod registarskog indirektnog, kod koga je duina 1bajt. Prvi bajt naredbe sadri kod operacije i nain adresiranja. Vii bajt operanda se smeta na niu adresu a nii na viu adresu. a) Koliki je broj pristupa memoriji u fazi itanja naredbe, odreivanja adrese i itanja operanda za svaki od naina adresiranja? Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E
Sadraj: 00 00 00 0A 11 ** 00 03 FF 00 08 FF FF FF FF
b) Ako pre itanja naredbi broja naredbi ima sadraj PC = 05, odrediti decimalnu vrednost operanda za sluaj neposrednog i memorijskog direktnog adresiranja. c) Koliki bi trebalo da bude sadraj registra R0 u sluaju registarskog indirektnog, a koliki sadraj registra XR u sluaju indeksnog adresiranja sa autoinkrementiranjem, pa da decimalna vrednost operanda bude 8?
Reenje:
a) Broj pristupa memoriji za pojedine naine adresiranja je:
nain adresiranja
sadraj adresnog
dela naredbe
faza itanja naredbe
faza
odreivanja adrese
faza
itanja operanda
neposredno operand 3 0 0
memorijsko dir. adresa operanda 3 0 2
registarsko
indir.
nema adresni
deo
1 0 2
indeksno
sa autoink.
pomeraj 3 0 2
b) U sluaju neposrednog i memorijskog direktnog adresovanja naredba je dugaka 3 bajta, a poto sadraj PC predstavlja adresu prvog bajta naredbe, 3 bajta naredbe nalaze se u 3 sukcesivne lokacije, poev od lokacije sa adresom 05.
-
05 06 07
** 00 03
Adresni deo naredbe, smeten na lokacijama sa adresama 06 i 07 je u sluaju neposrednog adresiranja sam operand, a u sluaju memorijskog direktnog, adresa operanda, s tim to je u lokaciji sa viom adresom (07) nii bajt operanda, odnosno adrese. Dakle, u sluaju neposrednog adresiranja vrednost operanda je
O = 0003xeq = 310,
a u sluaju memorijskog direktnog adresiranja, sadraj 03xeq je nii bajt adrese operanda, pa se iz sadraja lokacija 03 i 04 nalazi
03 04
0A 11
tj. operand je u ovom sluaju
O = 0A11xeq = 1 160 + 1 161 + 10 162 = 27310
c) U sluaju registarskog indirektnog adresiranja adresa operanda se nalazi u registru za indirektno adresiranje. Ako je vrednost operanda 810 = 0008xeq , sadraj registra R0 bie
(R0) = 090Axeq
U sluaju indeksnog adresiranja sa autoinkrementiranjem (postinkrementiranje) efektivna adresa operanda se nalazi sabiranjem sadraja indeks registra i pomeraja, koji u ovom sluaju predstavlja adresni deo naredbe. Ako je vrednost operanda 810 = 0008xeq , iz sadraja prvih lokacija memorije oitava se vii bajt efektivne adrese
Eah = 0A.
Sadraj indeks registra, poto je vrednost pomeraja 03, je
(XR) = 0A - 03 = 07xeq
1.12. Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kod operacije (bitovi od 5 do 0) i kod naina adresovanja (bitovi 7 i 6). Svi operandi su jednobajtni i prikazani su u drugom komplementu. Sve adrese su dvobajtne i smetaju se nii bajt na nioj, a vii bajt na vioj adresi. Stek raste od viih ka niim adresama u memoriji, a SP ukazuje na prvu slobodnu lokaciju na steku. Sve naredbe koriste jednobajti akumulator u kome ostaje rezultat. Sadraj dela memorije je:
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Sadraj: 0E 00 C0 5C 00 00 B8 30 FE FF 00 FA 55 A3 AF 0E
-
adresovanje ko
d
duina naredbe
operacija kod
memorijsko
direktno
00 3 bajta ADD 011100
memorijsko
indirektno
01 3 bajta SUB 111000
neposredno 10 2 bajta PUSH 111110
bezadresna
naredba
11 1 bajt POP 000000
a) Ako je sadraj brojaa naredbi PC = 2 i pokazivaa steka SP = 0E odrediti vrednost sadraja akumulatora i pokazivaa steka po izvrenju prve naredbe. b) Koliki je broj pristupa memoriji u fazi itanja naredbe, odreivanja adrese, itanja operanda i izvrenja za izvrenu naredbu.
Reenje:
a) (PC) = 02xeq , pa sadraj lokacije sa adresom 02 predstavlja prvi bajt naredbe
(02) = C0xeq = 110000002,
na osnovu ega se zakljuuje da se radi o bezadresnoj naredbi POP (pogledati u tablici kodove naina adresiranja i kodove operacije). Rezultat izvrenja ove naredbe je smetanje sadraja prve pune lokacije steka u akumulator. Izgled steka pre izvrenja ove naredbe je
SP 0E
0E 0F
////////// 10
////////// 11
............
pa e sadraj akumulatora po izvrenju POP naredbe biti jednak sadraju lokacije 0F, tj
(Acc) = 0Exeq
dok e SP opet ukazivati na prvu slobodnu lokaciju na steku, tj.
(SP) = 0Fxeq
b) Poto je izvrena naredba jednobajtna bezadresna naredba (vidi tablicu), broj pristupa memoriji u fazi itanja naredbe je 1, nema pristupa memoriji u fazi odreivanja adrese i itanja operanda, a u fazi izvrenja memoriji se pristupa 1 put (kada se oitava prva puna lokacija steka na adresi 0F).
1.13. Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kod operacije (bitovi od 7 do 2) i kod naina adresovanja (bitovi 1 i 0). Svi operandi su jednobajtni i prikazani su u drugom komplementu. Sve adrese su dvobajtne i smetaju se nii bajt na nioj, a vii bajt na vioj adresi. Stek raste od niih ka viim adresama u memoriji, a SP ukazuje na prvu slobodnu lokaciju na steku. Sve naredbe koriste jednobajti akumulator u kome ostaje rezultat. Sadraj dela memorije je:
-
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Sadraj: 0E 00 03 55 00 00 AA C7 FF FF 00 FA 55 AF AF 0E
adresovanje ko
d
duina naredbe
operacija kod
memorijsko
direktno
00 3 bajta ADD 010101
memorijsko
indirektno
01 3 bajta SUB 101010
neposredno 10 2 bajta PUSH 111111
bezadresna
naredba
11 1 bajt POP 000000
a) Ako je sadraj brojaa naredbi PC =02 i pokazivaa steka SP = 0C odrediti decimalnu vrednost sadraja akumulatora i SP-a kao i sadraj indikatora N, Z, V i C po izvrenju svake od 4 sukcesivne naredbe. PUSH i POP ne menjaju sadraj indikatora. b) Koliki je broj pristupa memoriji u fazi itanja naredbe, odreivanja adrese, itanja operanda za svaku od 4 izvrene naredbe.
Reenje:
a) 1. naredba
(PC) = 02xeq
(02) = 03xeq = 000000112
pa je ova naredba bezadresna naredba POP. Rezultat izvrenja ove naredbe je smetanje sadraja prve pune lokacije steka u akumulator. Izgled steka pre izvrenja ove naredbe je
SP 0C
FA 0B
00 0A
FF 09
.........
pa e sadraj akumulatora po izvrenju POP naredbe biti jednak sadraju lokacije 0B, tj.
(Acc) = FAxeq = 11111010 = - (00000101 + 1)= -610
dok e SP opet ukazivati na prvu slobodnu lokaciju na steku, tj.
(SP) = 0Bxeq = 1110
Kako bezadresne naredbe ne menjaju sadraj indikatora, ako su pre izvrenja ove naredbe svi bili resetovani, njihov sadraj i po izvenju ove naredbe ostaje 0, tj
C = Z = N = V = 0
-
2. naredba
(PC) = 03xeq jer je re o bezadresnoj naredbi, duine 1B, pa je PC = PC + 1 (03) = 55xeq = 010101012
Ovaj binarni sadraj je prvi bajt 2-ge naredbe, na osnovu kog se zakljuuje da se radi o 3-bajtnoj naredbi sabiranja, iji je mnemonik ADD. 2-gi i 3-i bajt ove naredbe sadre adresu adrese drugog operanda (prvi operand je u akumulatoru), jer je nain adresiranja memorijsko indirektno (vidi tablicu). Nii bajt adrese adese je sadraj memorijske lokacije 04 i taj sadraj je 00, pa je nii bajt adrese sadraj lokacije 00 i taj sadraj je 0E. Dakle, na lokaciji sa adresom 0E nalazi se drugi operand O2 za operaciju sabiranja
O2 = (0E) = AFxeq
Rezultat sabiranja prvog operanda i drugog operanda ostaje u akumulatoru, a sabiranje se
izvodi u komplementu dvojke, tj.
(Acc) = (Acc) + O2 = FA + AF = 11111010 + 10101111 = 101010012 = A9xeq =
10101001 = -(01010110 + 1) = -8710
Poto je ADD aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
Poto je ADD aritmetika naredba, ona ne utie na promenu sadraja SP, pa je i posle izvrenja 2. naredbe (SP) = 0Bxeq.
3. naredba
(PC) = 06xeq jer je naredba dugaka 3B, pa je PC = PC + 3 (06) = AAxeq = 101010102
Ovaj binarni sadraj je prvi bajt 2-bajtne naredbe oduzimanja SUB sa neposrednim adresiranjem drugog operanda (drugi operand se oduzima od sadraja akumulatora i rezultat ostaje u akumulatoru). Drugi operand je sadraj 2-gog bajta ove naredbe, tj
O2 = (07) = C7xeq
pa e sadraj akumulatora po izvrenju ove naredbe biti
(Acc) = (Acc) + (- O2) = A9xeq + (- C7)xeq = 10101001 + 00111001 = 11100010 =
= E2xeq = 11100010 = -(00011101 + 1) = -3010
pri emu se operacija oduzimanja izvodi sabiranjem u komplementu dvojke. Poto je SUB aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
-
Poto je SUB aritmetika naredba, ona ne utie na promenu sadraja SP, pa je i posle izvrenja 3. naredbe (SP) = 0Bxeq.
4. naredba
(PC) = 08xeq jer je naredba dugaka 2B, pa je PC = PC + 2 (08) = FFxeq = 111111112
Ovaj binarni sadraj ukazuje na 1-bajtnu bezadresnu naredbu PUSH (vidi tablicu). Rezultat izvrenja ove naredbe je upisivanje sadraja akumulatora na prvu slobodnu lokaciju steka, pri emu sadraj akumulatora ostaje nepromenjen. S obzirom na organizaciju steka, sadraj SP se poveava za 1. Dakle,
(Acc) = (0B) = E2xeq = -3010
(SP) = 0Cxeq
Kako bezadresne naredbe ne menjaju sadraj indikatora, njihov sadraj je kao i posle izvrene 3. naredbe, C = Z = V = 0, N =1.
b) Broj pristupa memoriji za svaku od 4 izvrene naredbe:
izvrena naredba
nain adresiranja
faza
itanja naredbe
faza
odreivanja
adrese
faza
itanja operanda
POP bezadresn
a
1 0 0
ADD memorijsk
o indir.
3 2 1
SUB neposredn
o
2 0 0
PUSH bezadresn
a
1 0 0
1.14. Kod nekog jednoadresnog raunara zastupljeni su sledei naini adresiranja: registarsko indirektno, memorijsko direktno i memorijsko indirektno. U prvom bajtu naredbe kodiran je nain adresiranja i korieni registar (X0 i X1) u sluaju registarskog indirektnog adresiranja. Preostali bitovi prvog bajta naredbe koriste se za kod operacije. Ostali bajtovi naredbe slue za adresiranje jednog operanda, dok je drugi operand u akumulatoru duine 16 bitova. Operand moe biti bilo gde u memoriji kapaciteta 64KB, dok se adresa operanda kod memorijskog indirektnog adresiranja
mora nalaziti u prvih 256B memorije. Iz memorije se ita i u memoriju se upisuje bajt po bajt. a) Definisati format prvog bajta naredbe ovog raunara. Koliko moe biti naredbi sa razliitim operacionim kodom za registarsko indirektno, a koliko za ostale naine adresiranja? Kolika je duina naredbe u pojedinim sluajevima? b) Koliki je broj pristupa memoriji za pojedine naine adresiranja u fazi itanja naredbe, odreivanja adrese i itanja operanda? c) Kolika je duina brojaa naredbi, adresnog registra memorije i registra naredbi u ovom raunaru?
Reenje:
-
a) Format naredbe u sluaju registarskog indirektnog adresiranja moe se prikazati na sledei nain:
7 6 5 4 0
nain adresir
.
kori. regista
r
kod
operacije
Broj razliitih naredbi u sluaju registarskog indirektnog adresiranja je 25 = 32 jer polje koda operacije sadri bitove od 4 do 0. Duina naredbe je 1 bajt.
Format naredbe u sluaju memorijskog direktnog adresiranja moe se prikazati na sledei nain:
7 6 5 0 2. bajt naredbe i 3. bajt naredbe
nain adreso
v
kod
operacije
adresa
operanda
Broj razliitih naredbi u sluaju memorijskog direktnog adresiranja je 26 = 64 jer polje koda operacije sadri bitove od 5 do 0. Duina naredbe je 3 bajta, pri emu 2-gi i 3-i bajt naredbe adresiraju operand koji se moe nai bilo gde u memoriji kapaciteta CM = 64 KB = 26 210 B
Format naredbe u sluaju memorijskog indirektnog adresiranja moe se prikazati na sledei nain:
7 6 5 0 2. bajt naredbe
nain adresir
.
kod
operacije
adresa adrese
operanda
Broj razliitih naredbi u sluaju memorijskog idirektnog adresovanja je 26 = 64 jer polje koda operacije sadri bitove od 5 do 0. Duina naredbe je 2 bajta, pri emu 2-gi bajt naredbe adresira adresu operanda koja se mou nai u prvih 256B = 28B memorije.
b) Broj pristupa memoriji za pojedine naine adresiranja je:
nain adresiranja
sadraj adresnog
dela naredbe
faza itanja naredbe
faza
odreivanja adrese
faza
itanja operanda
memorijsko
indir.
adresa adrese
operanda
2 2 2
memorijsko dir. adresa operanda 3 0 2
registarsko
indir.
nema adresni
deo
1 0 2
-
c) CM = 2 2 64 2 26 10L LPC MAR KB B
LPC = LMAR = 16 bitova, poto se iz memorije ita i u memoriju upisuje bajt po bajt; LIR = 3B
1.15. Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kod operacije (bitovi od 7 do 2) i kod naina adresovanja (bitovi 1 i 0). Svi operandi su jednobajtni i prikazani su u drugom komplementu. Sve adrese su dvobajtne i smetaju se vii bajt na nioj, a nii bajt na vioj adresi. Na lokaciji sa adresom 04 nalazi se prvi bajt naredbe sabiranja. Kod naredbe sabiranja je 000000. Pre
izvrenja te naredbe sadraj akumulatora je 11111111. Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Sadraj: FF FF 00 0B 01 00 02 02 06 03 22 77 FF FF FF 0E
adresovanje ko
d
duina naredbe
memorijsko
direktno
00 3 bajta
memorijsko
indirektno
01 3 bajta
neposredno 11 2 bajta
indeksno sa
autodekrem
.
10 1 bajt
a) Koliki je broj pristupa memoriji za pojedine naine adresiranja u fazi itanja naredbe, odreivanja adrese i itanja operanda? b) Kolika je decimalna vrednost sadraja akumulatora po izvrenju ove naredbe? Koju vrednost imaju indikatori C,Z,N i V?
Reenje:
a)
nain adresiranja
sadraj adresnog
dela naredbe
faza itanja naredbe
faza
odreivanja adrese
faza
itanja operanda
neposredno operand 2 0 0
memorijsko dir. adresa operanda 3 0 1
memorisko
indir.
adresa adres op. 3 2 1
indeksno
sa autodek.
pomeraj 1 0 1
b)
(PC) = 04xeq
(04) = 01xeq = 000000012
-
Ovaj binarni sadraj je prvi bajt 3 - bajtne naredbe sabiranja sa memorijskim indirektnim adresiranjem drugog operanda. Prvi operand je u akumulatoru. Sadraj 2-gog i 3 -eg bajta naredbe (lokacija sa adresama 05 i 06) predstavlja adresu adrese drugog operanda. Sadraj lokacije sa adresom 06 je 02 i on predstavlja nii bajt adrese adrese. Dakle, na lokaciji sa adresom 02 nalazi se vii bajt adrese. Taj sadraj je 00, to predstavlja adresu jednobajtnog operanda. Drugi operand se oitava iz ove lokacije i on je
O2 = (00) = FFxeq
Po izvrenju naredbe sabiranja sadraj akumulatora e biti:
(Acc) = (Acc) + O2 = FF + FF = FExeq = 11111110 = -(00000001 + 1) = -210
a sadraj indikatora
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
1.16. Kod nekog jednoadresnog raunara zastupljeno je neposredno i memorijsko direktno adresiranje. Sve naredbe su duine 3 bajta. Prvi bajt predstavlja kod operacije i nain adresiranja, dok su ostala dva adresa, odnosno operand. Memoriji se pristupa bajt po bajt. Vii bajt operanda se smeta na niu adresu, a nii na viu adresu. Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Sadraj: xx 00 06 09 00 11 02 1B 01 0A 0B 00 11 00 03 0E
Ako pre itanja naredbe broja naredbi ima vrednost PC = 00, za oba gore navedena naina adresiranja odrediti binarnu vrednost operanda.
Reenje:
Kako je naredba 3 - bajtna, a pre itanja naredbe broja naredbi ima vrednost PC = 00, to sadraj lokacija sa adresama 00, 01 i 02 predstavlja naredbu
00 01 02
xx 00 06
U sluaju neposrednog adresiranja sadraj 2 -gog i 3 - eg bajta naredbe je sam operand, tj.
O = 0006xeq = 00000000000001102
U sluaju memorijskog direktnog adresiranja sadraj 2 -gog i 3 - eg bajta naredbe je adresa operanda, pa je 06 nii bajt adrese. Dakle, na lokacijama sa adresama 06 i 07 smeten je 2 - bajtni operand, ija je vrednost
O = 021Bxeq = 00000010000110112
-
1.17. U nekom raunaru naredbe su duine 1 i 2 Bajta. U 1 Bajtu svih naredbi bit 7 ukazuje na duinu naredbe (0 - 1 Bajt, 1 - 2 Bajta). Naredbe duine 1 Bajt su bezadresne, ili sa registarskim indirektnim adresiranjem. Na to ukazuje bit 0 prvog bajta naredbe (0 - bezadresno, 1 - registarsko
indirektno). Bit 1 prvog bajta naredbe ukazuje na korieni registar (0 - X0, 1 - X1). Preostali bitovi u naredbi duine 1 bajt predstavljaju kod operacije. U naredbama duine 2 bajta bit 0 prvog bajta naredbe ukazuje na nain adresiranja (0 - memorijsko direktno, 1 - memorijsko indirektno). Drugi bajt slui za adresiranje. Kapacitet memorije je 64 KB. Iz memorije se ita i u nju upisuje bajt po bajt. Prvi operand je u registru A koji predstavlja akumulator. Drugi operand se smeta u registar B. Duine registara A, B, X0, X1 i registra naredbi su 2 bajta. Kolika je duina brojaa naredbi i adresnog registra u ovom raunaru? Koliko moe biti najvie razliitih naredbi duine 1 bajt? Koliko je dostupno memorijskih elija sa memorijskim direktnim adresiranjem?
Reenje:
Format 1 -bajtnih naredbi ovog raunara moe se prikazati na sledei nain:
7 6 2 1 0
duina naredb
e
kod operacije korieni
registar
nain adresiranja
Poto je kod operacije zapisan bitovima od 6 do 2, to ovaj raunar ima 25 = 32 razliite naredbi duine 1B.
Format 2 -bajtnih naredbi ovog raunara moe se prikazati na sledei nain:
7 6 2 1 0 2. bajt naredbe
duina naredbe
kod operacije
nain adresiranja
adresni
deo
Kako je polje za adresu duine 1B, to se u sluaju memorijskog direktnog adresiranja, kada adresni deo predstavlja adresu operanda, moe adresirati 28 = 256 memorijskih elija. Duina brojaa naredbi PC i adresnog registra MAR odreena je kapacitetom memorije, tj.
CM = 2 2 64 2 26 10L LPC MAR KB B
odakle sledi
LPC = LMAR = 10 bitova
1.18. U nekom raunaru naredbe su duine 1, 2 i 3 bajta. Bitovi 7 i 6 prvog bajta naredbe ukazuju na duinu naredbe i nain adresiranja: 00 - bezadresne naredbe duine 1 bajt, 01 - naredbe duine 2 bajta sa relativnim adresiranjem, 10 - naredbe duine 2 bajta sa memorijskim indirektnim adresiranjem, 11 - naredbe duine 3 bajta sa indeksnim adresiranjem sa autodekrementiranjem. Bit 5 prvog bajta naredbe duine 3 bajta ukazuje na korieni registar (0 - X0, 1 - X1). Preostali bitovi prvog bajta naredbe predstavljaju kod operacije. Treba uoiti da se indirektna adresa moe nalaziti samo u prvih 256 bajtova memorije. Kapacitet memorije je 64 Kbajta. Iz memorije se ita i u nju upisuje bajt po bajt. Prvi operand duine 2 bajta je u registru A koji predstavlja akumulator. Drugi operand duine 2 bajta se smeta u registar B. Duina registara X0 i X1 je 2 bajta. Koliko moe biti najvie naredbi duine 1 bajt, 2 bajta i 3 bajta? Kolika je duina brojaa naredbi, adresnog registra memorije i prihvatnog registra memorije u ovom raunaru?
-
Reenje:
Format 1 -bajtnih naredbi ovog raunara moe se prikazati na sledei nain:
7 6 5 0
duina naredb
e i
nain adresir.
kod
operacije
Poto je kod operacije zapisan bitovima od 5 do 0, to ovaj raunar ima 26 = 64 razliitih naredbi duine 1B.
Format 2 -bajtnih naredbi ovog raunara moe se prikazati na sledei nain:
7 6 5 0 2. bajt naredbe
duina naredb
e
i nain adresir.
kod operacije pomeraj (za rel.
adr.)
adresa adrese (za
mem. indir. adr.)
Poto je kod operacije zapisan bitovima od 5 do 0, to ovaj raunar ima 26 = 64 razliitih naredbi duine 2B.
Format 3 -bajtnih naredbi ovog raunara moe se prikazati na sledei nain:
7 6 5 4 0 2. bajt naredbe 3. bajt naredbe
duina naredb
e
i nain adresir.
kori. registar
kod
operacije
pomeraj pomeraj
Poto je kod operacije zapisan bitovima od 4 do 0, to ovaj raunar ima 25 = 32 razliitih naredbi duine 3B.
Duina brojaa naredbi PC i adresnog registra MAR odreena je kapacitetom memorije, tj.
CM = 2 2 64 2 26 10L LPC MAR KB B
odakle sledi
LPC = LMAR = 16 bitova
Duina prihvatnog regisra je jednaka duini rei koja se u jednom pristupu ita u/iz memorije, tj.
LMBR = 1B
-
1.19. Neki jednoadresni raunar ima sve naredbe duine 3 bajta. Sve adrese i operandi su duine 2 bajta. Iz memorije se ita i u memoriju upisuje bajt po bajt. Vii bajt operanda, odnosno adrese, se smeta na niu adresu, a nii bajt na viu adresu. Indeks registar je duine 2 bajta i ima vrednost FFFF.
Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C
Sadraj: 05 72 01 0B 30 xx 00 09 03 00 02 01 02
gde xx oznaava kod operacije i nain adresiranja neke naredbe. a) Ako pre itanja naredbe broja naredbe ima vrednost PC = 05, odrediti decimalnu vrednost operanda u sluaju sledeih naina adresiranja: 1) neposrednog,
2) memorijskog direktnog
3)memorijskog indirektnog,
4) indeksnog sa autodekrementiranjem.
b) Koliki je broj pristupa memoriji za navedene naine adresiranja u fazi itanja naredbe, odreivanja adrese i itanja operanda?
Reenje:
a) Kako je naredba 3 - bajtna, a pre itanja naredbe broja naredbi ima vrednost PC = 05, to sadraj lokacija sa adresama 05, 06 i 07 predstavlja naredbu
05 06 07
xx 00 09
1) U sluaju neposrednog adresiranja sadraj 2 -gog i 3 - eg bajta naredbe je sam operand, tj.
O = 0009xeq = 910
2) U sluaju memorijskog direktnog adresiranja sadraj 2 -gog i 3 - eg bajta naredbe je adresa operanda, pa je 09 nii bajt adrese. Dakle, na lokacijama sa adresama 09 i 0A smeten je 2 - bajtni operand, ija je vrednost
O = 0002xeq = 210
3) U sluaju memorijskog indirektnog adresiranja sadraj 2 -gog i 3 - eg bajta naredbe je adresa adrese operanda, pa je 09 nii bajt adrese adrese, a 0A vii bajt adrese adrese. Sadraj lokacije sa adresom 0A je 02 i to je nii bajt adrese operanda. Dakle, dvobajtni operand smeten je na lokacijama 02 i 03 i njegova vrednost je
O = 010Bxeq = 11 160 + 1 162 = 26710
4) U sluaju indksnog adresiranja sa autodekrementiranjem sadraj 2 -gog i 3 - eg bajta naredbe je pomeraj D koji se dodaje dekrementiranom sadraju indeks registra da bi se odredila efektivna adresa operanda.
-
Ea = (XR) - 1 + D = FFFF - 1 + 0009 = 0007xeq
07 je, dakle, nii bajt adrese operanda, pa je dvobajtni operand smeten na lokacijama sa adresama 07 i 08 i njegova vrednost je
O = 0903xeq = 3 160 + 9 162 = 230710
b)
nain adresiranja
sadraj adresnog
dela naredbe
faza itanja naredbe
faza
odreivanja adrese
faza
itanja operanda
neposredno operand 3 0 0
memorijsko dir. adresa operanda 3 0 2
memorisko
indir.
adresa adrese
op.
3 2 2
indeksno
sa autodek.
pomeraj 3 0 2
1.20. Neki jednoadresni raunar ima sve naredbe duine 3 bajta. Sve adrese i operandi su duine 2 bajta. Iz memorije se ita i u memoriju upisuje bajt po bajt. Vii bajt operanda, odnosno adrese, se smeta na niu adresu, a nii bajt na viu adresu. Bitovi 7 i 6 prvog bajta naredbe ukazuju na nain adresiranja: 00 - memorijsko direktno, 01 - memorijsko indirektno, 10 - neposredno i 11 - indeksno
adresiranje sa autodekrementiranjem. Ostalih 6 bitova prvog bajta naredbe koriste se za kod
operacije.
Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Sadraj: FF FF FF xx xx xx EF FF FF FF 3F 01 FF FF 00 0A
a) Ako pre itanja naredbe broja naredbe ima vrednost PC = 03, a indeks registar vrednost XR = 07, koji sadraj treba da se nalazi u lokacijama sa adresama 3, 4 i 5 za svaki od navedenih naina adresiranja, da bi vrednost operanda ove naredbe bila 3F01. Binarna vrednost koda operacije na adresi 3 je 011011. Traeni sadraj prikazati heksadecimalno. b) Koliki je broj pristupa memoriji za pojedine naine adresiranja u fazi itanja naredbe, odreivanja adrese i itanja operanda?
Reenje:
a) 2-gi i 3-i bajt naredbe predstavljaju adresni deo naredbe i smeteni su na lokacijama sa adresama 04 i 05, jer je adresa prvog bajta naredbe sadraj brojaa naredbi koji je jednak 03. Vrednost operanda odreuje se pomou sadraja lokacija 04 i 05 na osnovu znaenja adresnog dela naredbe za pojedine naine adresiranja.
1) memorijsko direktno adr. - Sadraj adresnog dela naredbe je adresa operanda, dakle, na lokaciji 05 smeten je nii bajt adrese operanda. Na niem bajtu adrese je smeten vii bajt operanda 3F, pa je (05) = 0Axeq. U prvom bajtu naredbe bie smeten kod naina adresiranja 00 (bitovi 7 i 6) i kod operacije 011011(bitovi od 5 do 2), to odgovara heksadecimalnom broju 1B. Sadraj sve 3 lokacije, na kojima je smetena naredba je onda:
-
03 04 05
1B 00 0A
2) memorijsko indirektno adr. - Sadraj adresnog dela naredbe je adresa adrese operanda, dakle, na lokaciji 05 smeten je nii bajt adrese adrese operanda. Nii bajt adrese operanda je 0A i on je smeten na lokaciji sa adresom 0F. U prvom bajtu naredbe bie smeten kod naina adresiranja 01 (bitovi 7 i 6) i kod operacije 011011(bitovi od 5 do 2), to odgovara heksadecimalnom broju 1B. Sadraj sve 3 lokacije, na kojima je smetena naredba je onda:
03 04 05
5B 00 0F
3) neposredno adr. - Sadraj adresnog dela naredbe je sam operand, pa je sadraj sve 3 lokacije, na kojima je smetena naredba onda:
03 04 05
9B 3F 01
4) indeksno adr. sa autodekrementiranjem - Efektivna adresa operanda (nii bajt) adrese je zbir dekrementiranog sadraja indeks registra i pomeraja D, smetenog u adresnom delu naredbe, tj.
Ea = 0Axeq = (XR) - 1 + D = 06 +D
D = 04xeq
Sadraj sve 3 lokacije, na kojima je smetena naredba je onda:
03 04 05
BB 00 04
b)
nain adresiranja
sadraj adresnog
dela naredbe
faza itanja naredbe
faza
odreivanja adrese
faza
itanja operanda
neposredno operand 3 0 0
memorijsko dir. adresa operanda 3 0 2
memorisko
indir.
adresa adrese
op.
3 2 2
indeksno
sa autodek.
pomeraj 3 0 2
1.21. Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kod operacije (bitovi od 7 do 2) i kod naina adresovanja (bitovi 1 i 0). Svi operandi su jednobajtni i prikazani su u drugom komplementu. Sve adrese su dvobajtne i smetaju se vii bajt na nioj, a nii bajt na vioj adresi.^etiri naredbe oduzimanja smetene su u memoriji jedna za drugom poev od lokacije ija je adresa 02. Kod naredbe oduzimanja je 000000 i ona oduzima vrednosti operanda od akumulatora i
rezultat smeta u akumulator . Pre izvrenja tih naredbi sadraj akumulatora je EA, indeks registra XR = 08, a brojaa naredbi PC = 02. Sadraj prvih elija memorije je
Lokacija: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E
Sadraj: FF FF 00 03 01 00 0D 03 01 02 03 03 78 00 00
-
adresovanje ko
d
duina naredbe
memorijsko
direktno
01 3 bajta
relativno 00 3 bajta
neposredno 11 2 bajta
indeksno sa
autodekrem
.
10 2 bajt
a) Kolika je decimalna vrednost sadraja akumulatora po izvrenju ove 4 naredbe? Koju vrednost imaju indikatori C,Z,N i V?
b) Koliki je broj pristupa memoriji za svaku od ove 4 naredbe u fazi itanja naredbe, odreivanja adrese i itanja operanda?
Reenje:
a) 1. naredba
(PC) = 02xeq
(02) = 00xeq = 000000002
pa je ovo 3 - bajtna naredba oduzimanja sa relativnim adresiranjem (vidi tablicu). Na lokacijama 03
i 04 nalazi se pomeraj D, koji se dodaje sadraju programskog brojaa da bi se odredila efektivna adresa operanda. Efektivna adresa operanda je
Ea = (PC) + (04) = 02 + 01 = 03
pa je drugi operand na lokaciji sa adresom 03 i on se oduzima od sadraja akumulatora Sadraj akumulatora po izvrenju ove naredbe bie jednak
(Acc) = (Acc) - (03) = EA - 03 = (Acc) + (-O2) = 11101010 + 11111101 = E7xeq =
= -2510
pri emu se operacija oduzimanja izvodi sabiranjem u komplementu dvojke. Poto je SUB aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer je F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
2. naredba
(PC) = 05xeq
(05) = 00xeq = 000000002
Ovaj binarni sadraj je prvi bajt 2. naredbe, na osnovu kog se zakljuuje da se ponovo radi o 3-bajtnoj naredbi oduzimanja sa relativnim adresiranjem (vidi tablicu). Na lokacijama 06 i 07
nalazi se pomeraj D, koji se dodaje sadraju programskog brojaa da bi se odredila efektivna adresa operanda. Efektivna adresa operanda je
-
Ea = (PC) + (07) = 05 + 03 = 08
pa je drugi operand na lokaciji sa adresom 08 i on se oduzima od sadraja akumulatora Sadraj akumulatora po izvrenju ove naredbe bie jednak
(Acc) = Acc) + (-O2) = (Acc) - (08) = E7 - 01 = 11100111 +11111111 = E6xeq =
= -2610
pri emu se operacija oduzimanja izvodi sabiranjem u komplementu dvojke. Poto je SUB aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer je F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
3. naredba
(PC) = 08xeq
(08) = 01xeq = 000000012
Ovaj binarni sadraj je prvi bajt 3-bajtne naredbe oduzimanja sa memoriskim direktnim adresiranjem drugog operanda (drugi operand se oduzima od sadraja akumulatora i rezultat ostaje u akumulatoru). Adresni deo naredbe je u ovom sluaju adresa operanda, tj. na adresi 0A smeten je nii bajt adrese, koji ima vrednost 03. Drugi bajt je O2 = (03) = 03xeq
pa e sadraj akumulatora po izvrenju ove naredbe biti
(Acc) = (Acc) + (- O2) = E6xeq + (- 03)xeq = 11100110 + 11111101 = 11100011 =
= E3xeq = -2910
pri emu se operacija oduzimanja izvodi sabiranjem u komplementu dvojke.
Poto je SUB aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je najstarija cifra rezultata 1,
Z = 0, jer je F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 0
4. naredba
(PC) = 0Bxeq
(0B) = 03xeq = 00000011 2
Ovaj binarni sadraj je prvi bajt 2-bajtne naredbe oduzimanja sa neposrednim adresiranjem drugog operanda (drugi operand se oduzima od sadraja akumulatora i rezultat ostaje u akumulatoru). Adresni deo naredbe je u ovom sluaju sam operand, tj.
O2 = (0C) = 78xeq
pa e sadraj akumulatora po izvrenju ove naredbe biti
-
(Acc) = (Acc) + (- O2) = E3xeq + (- 78)xeq = 11100011 + 10001000 = 01101011
= 6Bxeq = 10710
pri emu se operacija oduzimanja izvodi sabiranjem u komplementu dvojke.
Poto je SUB aritmetika naredba, ona utie na promenu vrednosti indikatora, tj. bie C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 0, jer je najstarija cifra rezultata 0,
Z = 0, jer je F F Fn n 1 2 0 0...
V = 0, jer A B F A B Fn n n n n n 1 1 1 1 1 1 1
b) Broj pristupa memoriji za svaku od 4 izvrene naredbe:
izvrena naredba
nain adresiranja
faza
itanja naredbe
faza
odreivanja
adrese
faza
itanja operanda
1. naredba relativno 3 0 1
2. naredba relativno 3 0 1
3.naredba mem.
direk.
3 0 1
4. naredba neposredn
o
2 0 0
-
2.1. Sabrati brojeve A i B u sledeim sluajevima:
a) A = + 110 0101; B = - 10011
b) A = - 110 0101; B = +10011
c) A = - 110 0101; B = - 10011
Koristiti postupak koji se primenjuje u digitalnim raunarima, tj. sabirati u komplementu 2. Rezultate predstaviti standardno kao brojeve sa znakom.
Reenje:
a) A = + 110 0101 = 01100101; B = - 10011 = - 00010011
A2 01100101 B 2 11101100 1 11101101
A + B = A2+ B
2 = 01100101 + 11101101 = 01010010 = + 1010010
b) A = - 110 0101 = - 01100101; B = +10011 = + 00010011
A2 10011010 1 10011011 B 2 00010011
A + B = A2+ B
2 = 10011011 +00010011 = 10101110 = - 01010010
c) A = - 110 0101 = - 01100101; B = - 10011 = - 00010011
A2 10011010 1 10011011 B 2 11101100 1 11101101
A + B = A2+ B
2 = 10001000 = - 01111000
gde je sa x2 oznaen komplement 2 broja x.
2.2. Odrediti vrednost indikatora C, V, N i Z u sluaju sabiranja brojeva sa znakom: A = +13 i B = + 9. Objasniti ta znai koja vrednost indikatora.
Reenje:
A = + 13 = + 11012 B = + 9 = + 10012
Ako se sabiranje izvodi u komplementu 2, onda etvorocifreni binarni operandi moraju biti predstavljeni sa najmanje 5 binarnih cifara, gde cifra najvee teine predstavlja znak broja.
A = + 1101 = 01101 B = + 1001 = 01001
F = A + B = 01101 + 01001 = 10110
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je Fn-1 = 1
Z = 0, jer F F Fn n 1 2 0 0...
V = 1, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 1
Vrednosti indikatora N = 1, ukazuje da je dobijeni rezultat negativan, to je oigledno netano. Meutim, vrednost indikatora V = 1 ukazuje da je pri sabiranju dolo do prekoraenja (overflow), tj. broj razreda za predstavljanje rezultata je nedovoljan, pa dobijeni rezultat nije
korektan.
-
2.3. U nekom raunaru svi operandi su duine 1B i prikazani su u drugom komplementu. Nai vrednosti indikatora C, Z, N i V ako se izvri sabiranje brojeva AF16 i A316.
Reenje:
A = A2 = AF16 = 10101111 B = B
2 = 10100011
F = A + B = 10101111 + 10100011 = 01010010
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 0, jer je Fn-1 = 0
Z = 0, jer F F Fn n 1 2 0 0...
V = 1, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 1
2.4. Odrediti vrednost indikatora C, V, N i Z u sluaju sabiranja brojeva sa znakom (broj razreda registara u koje se smetaju operandi i rezultat je 5):
a) X = + D16 Y = - 916
b) X = + 916 Y = - D16
Objasniti ta znai koja vrednost indikatora.
Reenje:
a) X = +D16 = 01101 Y = - 916 = 10111
F = X + Y = 01101 + 10111 = 00100
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 0, jer je Fn-1 = 0
Z = 0, jer je F F Fn n 1 2 0 0...
V = 0, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 0
2.5. Na adresi Eas nalazi se binarna re 1001 0110, a na adresi Ead nalazi se binarna re 0010 1110. Napisati binarnu re koja e se nalaziti u EAd i odrediti sadraj indikatora N, C, V i Z nakon izvravanja naredbe:
a) ADD. S EAs, EAd
b) AND. S EAs, EAd
c) NOT. S EAd
Reenje:
a) ADD. S EAs, Ead (EAd) = 11000100
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je Fn-1 = 1
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 0
b) AND. S EAs, Ead (EAd) = 00000110
-
AND pripada skupu logikih operacija, a pri izvoenju ovih operacije vrednosti indikatora se ne menjaju.
c) NOT. S Ead (EAd) = 11010001
NOT pripada skupu logikih operacija, a pri izvoenju ovih operacije vrednosti indikatora se ne menjaju.
2.6. Odrediti razliku
F = (+ X) - (+ Y)
kao i sadraj indikatora V, C, N i Z ako je X = 1101 i Y = 1110. Koristiti komplement 2 sa n = 5 ( n je broj razreda). Koliki mora biti najmanji broj razreda da bi navedena operacija mogla tano da se realizuje? Koji bi u tom sluaju bio sadraj indikatora V, C, N i Z?
Reenje:
X = + 1101 = 01101 Y = + 1110 = + 01110
F = X - Y = X + (- Y) = 01101 + (- 01110) = = 01101 + 10010 = 11111
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je Fn-1 = 1
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 0
Poto je V = 0 (ne postoji prekoraenje, tj. broj razreda za predstavljanje rezultata je dovoljan), dobijeni rezultat je taan dovoljno je, dakle, 5 razreda za dobijanje tanog rezultata.
2.7. Odrediti sadaj memorijske lokacije
1
5
1
4
1
3
1
2
1
1
1
0
9 8 7 6 5 4 3 2 1 0
x x x x x x x x x x x x x x x x
ako se zna da je u njoj smeten podatak (broj) - 2090.
Reenje:
-209010 = - 100000101010 = - 0000100000101010
U memorijskoj lokaciji zadati broj je zapisan u komplementu 2, pa je sadaj te memorijske lokacije
1
5
1
4
1
3
1
2
1
1
1
0
9 8 7 6 5 4 3 2 1 0
1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0
-
2.8. Kakav e biti sadraj indikatora C (Carry) u aritmetikoj operacionoj jedinici u sluaju da se operandi 12 i 7:
a) sabiraju?
b) oduzimaju (7 se oduzima od 12)?
Reenje:
O1 = 1210 = 1100 O2 = 710 = 0111
a) F = O1 + O2 = 01100 + 00111 = 10011
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu
b) F = O1 - O2 = 01100 - 00111 = 01100 + (- 00111) = 01100 + 11001 = 00101
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu
2.9. U memorijskim lokacijama a i b nalaze se brojevi A i B. Koje vrednosti imaju indikatori C, Z,
N i V posle izvrenja naredbe COMPARE a,b ako brojevi A i B mogu biti oba znaka, a njihove
apsolutne vrednosti su A = 1011011 i B = 0110001.
Reenje:
Naredba COMPARE a,b izvodi se nalaenjem znaka rezultata operacije A - B (ako je N = 1 sledi da je A < B, ako je Z=1 sledi da je A = B, ako je N = 0 sledi da je A > B). Operacija
oduzimanja izvodi se sabiranjem u komplementu 2, tj. kao
F = A - B = + A + (-B)
a) A > 0, B > 0
F = = + A + (-B) = + 1011011 + (- 0110001) = 01011011 + 11001111 = 00101010
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 0, jer je Fn-1 = 0
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 0
b) A >0, B < 0
F = = + A + (-B) = + 1011011 + (+ 0110001) = 01011011 + 00110001 = 10001100
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je Fn-1 = 1
Z = 0, jer F F Fn n 1 2 0 0...
V = 1, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 1
c) A < 0, B > 0
-
F = = + A + (-B) = - 1011011 + (- 0110001) = 10100101 + 11001111 = 01110100
C = 1, jer postoji prenos pri sabiranju u najstarijem razredu,
N = 0, jer je Fn-1 = 0
Z = 0, jer F F Fn n 1 2 0 0...
V = 1, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 1
d) A < 0, B < 0
F = = + A + (-B) = - 1011011 + (+ 0110001) = 10100101 + 00110001 = 11010110
C = 0, jer ne postoji prenos pri sabiranju u najstarijem razredu,
N = 1, jer je Fn-1 = 1
Z = 0, jer F F Fn n 1 2 0 0...
V = 0, jer je A B F A B Fn n n n n n 1 1 1 1 1 1 0
2.10. U nekom dvoadresnom raunaru operandi su prikazani u komplementu dvojke. Ako se u lokacijama a i b nalaze brojevi AA i BB, respektivno, odrediti decimalni sadraj akumulatora posle izvrenja naredbe ADD a,b. Koristei module etvororazrednih sabiraa nacrtati blok emu mree kojom se obavlja ova operacija.
Reenje:
O1 = AA O2 = BB
(Acc) = O1 + O2 = AA + BB = 10101010 + 10111011 = 011001012 = 65xeq = 5 160
+ + 6 161 = 10110
-
3.1. Na steku se nalaze simboli A, B, C, D, E, F, tako da je A na vrhu steka. Na adresama a i
a + 1 nalaze se simboli G I H. Premestiti simbole D i E u elije a i a + 1, a simbole G i H na njihovo mesto na steku. Koristiti naredbe PUSH, POP, LOAD, STORE i pomone lokacije b, b + 1, b +2, b +3, b +4. Sve etiri naredbe koriste akumulator duine 1 bajt.
Reenje:
G H
a a+1
A
B
C
D
E
F
stek
POP ; (Acc) = A
STORE b ; (b) = A
POP ; (Acc) = B
STORE b + 1 ; (b + 1) = B
POP ; (Acc) = C
STORE b + 2 ; (b + 2) = C
POP ; (Acc) = D
STORE b + 3 ; (b + 3) = D
POP ; (Acc) = E
STORE b + 4 ; (b + 4) = E
LOAD a ; (Acc) = G
PUSH ; (prva slobodna lok. steka) = G
LOAD a +1 ; (Acc) = H
PUSH ; (prva slobodna lok. steka) = H
LOAD b + 2 ; (Acc) = C
PUSH ; (prva slobodna lok. steka) = C
LOAD b + 1 ; (Acc) = B
PUSH ; (prva slobodna lok. steka) = B
LOAD b ; (Acc) = A
PUSH ; (prva slobodna lok. steka) = A
LOAD b + 3 ; (Acc) = D
STORE a ; (a) = D
LOAD b + 4 ; (Acc) = E
STORE a + 1 ; (a + 1) = E
3.2. Na steku se nalazi niz simbola 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, tako da je 0 na vrhu steka. Koristei odgovarajue naredbe i pomone elije operativne memorije na adresama m, m + 1, ... upisati niz simbola obrnutim redosledom (da 9 bude na vrhu steka)
Reenje:
POP ; (Acc) = 0
STORE m ; (m) = 0
-
POP ; (Acc) = 1
STORE m + 1 ; (m + 1) = 1
POP ; (Acc) = 2
STORE m +2 ; (m + 2) = 2
POP ; (Acc) = 3
STORE m + 3 ; (m + 3) = 3
POP ; (Acc) = 4
STORE m + 4 ; (m + 4) = 4
POP ; (Acc) = 5
STORE m + 5 ; (m + 5) = 5
POP ; (Acc) = 6
STORE m + 6 ; (m + 6) = 6
POP ; (Acc) = 7
STORE m + 7 ; (m + 7) = 7
POP ; (Acc) = 8
STORE m + 8 ; (m + 8) = 8
POP ; (Acc) = 9
STORE m + 9 ; (m + 9) = 9
LOAD m ;(Acc) =0
PUSH ; (prva slobodna lok. steka) = 0
LOAD m + 1 ;(Acc) = 1
PUSH ; (prva slobodna lok. steka) = 1
LOAD m + 2 ;(Acc) = 2
PUSH ; (prva slobodna lok. steka) = 2
LOAD m + 3 ;(Acc) = 3
PUSH ; (prva slobodna lok. steka) = 3
LOAD m + 4 ;(Acc) = 4
PUSH ; (prva slobodna lok. steka) = 4
LOAD m + 5 ;(Acc) = 5
PUSH ; (prva slobodna lok. steka) = 5
LOAD m + 6 ;(Acc) = 6
PUSH ; (prva slobodna lok. steka) = 6
LOAD m + 7 ;(Acc) = 7
PUSH ; (prva slobodna lok. steka) = 7
LOAD m + 8 ;(Acc) = 8
PUSH ; (prva slobodna lok. steka) = 8
LOAD m + 9 ;(Acc) = 9
PUSH ; (prva slobodna lok. steka) = 9
3.3. U memorijskim elijama a, b i c nalaze se brojevi 1F, D2 i EE. Posle izvrenja sledeih operacija:
LOAD a
PUSH
LOAD b
PUSH
LOAD c
PUSH
POP
ta se nalazi na vrhu steka, a ta u akumulatoru?
-
Reenje:
LOAD a ; (Acc) = 1F
PUSH ; (prva slobodna lok. steka) = 1F
LOAD b ; (Acc) = D2
PUSH ; (prva slobodna lok. steka) = D2
LOAD c ; (Acc) = EE
PUSH ; (prva slobodna lok. steka) = EE
POP ; (Acc) = EE
Dakle u akumulatoru se nalazi podatak EE, a na vrhu steka D2.
3.4. Uzimajui sa steka vrednosti simbola A, B, C i D, smetene tako da je A na vrhu steka, izraunati vrednost izraza (A3 + B + C) D i smestiti je na stek . Koristiti jednu pomonu lokaciju b i naredbe PUSH, POP, LOAD i STORE koje koriste akumulator, kao i jednoadresne aritmetike naredbe ADD i MUL, kod kojih je prvi operand u akumulatoru, drugi u memoriji, a rezultat ostaje u
akumulatoru.
Reenje:
POP ; (Acc) = A
STORE b ; (b) = A
MUL b ; (Acc) = (Acc) (b) = A2
MUL b ; (Acc) = (Acc) (b) = A2 A = A3
STORE b ; (b) = A3
POP ; (Acc) = B
ADD b ; (Acc) = (Acc) + (b) = B + A3
STORE b ; (b) = B + A3
POP ;(Acc) = C
ADD b ; (Acc) = (Acc) + (b) = C + B + A3
STORE b ; (b) = C + B + A3
POP ; (Acc) = D
MUL b ; (Acc) = (Acc) (b) = D (C + B + A3)
PUSH ; (prva slobodna lok. steka) = (Acc) = D (C+B+A3)
3.5. Simboli A, B, C, D i E nalaze se na steku organizovanom u operativnoj memoriji, tako da je A
na vrhu steka. Na mesto simbola C treba smestiti rezultat operacije C D + A, a na mesto simbola D
treba smestiti rezultat operacije (C + D) B. Koristiti naredbe LOAD, STORE, POP i PUSH, kao i aritmetike naredbe ADD I MUL. Sve ove naredbe su jednoadresne, izuzev POP i PUSH, koje su bezadresne. Na raspolaganju je pomono memorijsko podruje sa adresama b, b + 1, b + 2, b + 3.
Reenje:
POP ;(Acc) = A
STORE b ; (b) = A
POP ;(Acc) = B
STORE b +1 ; (b + 1) = B
POP ;(Acc) = C
STORE b +2 ; (b + 2) = C
POP ;(Acc) = D
STORE b +3 ; (b + 3) = D
LOAD b + 2 ; (Acc) = C
-
ADD b + 3 ; (Acc) = (Acc) + (b + 3) = C + D
MUL b + 1 ; (Acc) = (Acc) (b + 1) = (C + D) B
PUSH ; (prva slobodna lok. steka) = (Acc) = (C + D) B
LOAD b + 2 ; (Acc) = C
MUL b + 3 ; (Acc) = (Acc) (b + 3) = C D
ADD b ; (Acc) = (Acc) + (b) = C D + A
PUSH ; (prva slobodna lok. steka) = (Acc) = C D + A
LOAD b + 1 ; (Acc) = B
PUSH ; (prva slobodna lok. steka) = (Acc) = B
LOAD b ; (Acc) = A
PUSH ; (prva slobodna lok. steka) = (Acc) = A
3.6. U memorijskim lokacijama a i b nalaze se brojevi x i y. Na vrhu steka nalazi se broj z.
Koristei jednoadresne naredbe LOAD, STORE, ADD, SUB i MUL, sabrati brojeve x, y i z i njihov zbir smestiti na mesto z, kao i na lokaciji c u memoriji. U lokaciji a smestiti (x + y), a u
lokaciju b y z. Koristiti pomonu lokaciju d u memoriji. Sve naredbe koriste akumulator.
Reenje:
POP ; (Acc) = z
STORE d ; (d) = d
ADD a ; (Acc) = (Acc) + (a) = z + x
STORE a ; (a) = z + x
ADD b ; (Acc) = (Acc) + (b) = z + x + y
PUSH ; (prva slobodna lok. steka) = z + x + y
SUB a ; (Acc) = (Acc) - (a) = x + y +z - (z + x) = y
MUL d ;(Acc) = (Acc) (d) = y z
STORE b ; (b) = yz
3.7.