75
Радојка Крнета ОСНОВИ РАЧУНАРСКЕ ТЕХНИКЕ II Теорија и задаци Чачак 2006

Radojka Krneta - Osnovi Racunarske Tehnike II Tehnicki Fakultet Cacak

Embed Size (px)

DESCRIPTION

osnove racunarske tehnike 2 ftn cacak krneta

Citation preview

  • 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.