interrupt 8086 russia language

Upload: vantoan-luckyfan

Post on 23-Feb-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 interrupt 8086 russia language

    1/53

    ..

    28

    2

    16-

    16-.

    ,

    .

    8086

    Intel. , ,

    ,

    . , .

    8086 1978 .

    . ,

    8086, .

    80- , 8086

    . 8086

    ,

    . Intel

    , . 1982 Intel

    , -

    80186. 80186 -

    8086

    . Intel

    80286. Intel,

    Intel386, Intel486 Pentium .

    1987 Intel -

    80186: 80C186/C188. 80C186

    80186 .

    . 1990 80C186EB.

    8086 ,

  • 7/24/2019 interrupt 8086 russia language

    2/53

    2. 16-

    29

    .

    1991 . 80C186

    : 80C186XL, 80C186EA 80C186EC. .

    2.1. 8086

    8086 -

    16-

    .

    .

    ,

    1

    , 65536 65536 .

    , , 24 .

    256

    : , .

    8086 - ,

    .

    ( ) ,

    , ( ,

    ).

    8086

    ,

    .

    .2.1.

    8086

    (), ()

    .

    - ,

    ,

  • 7/24/2019 interrupt 8086 russia language

    3/53

    ..

    30

    /, /.

    : 8- ;

    16- ; 16- () ; 16- ; 16-

    .

    (20 )

    -

    (8 )

    -

    AH AL (20 ) BH BL CH CL

    DH DL SP CS BP DS SI SS DI ES

    IP

    (16 )

    .2.1.

    . ,

    , 8-

    , -

    , .

  • 7/24/2019 interrupt 8086 russia language

    4/53

    2. 16-

    31

    .

    : 16- -

    , 16- , 16- -

    .

    ,

    ,

    .

    8086

    .

    .

    MN/MX.

    256

    0 255, ,

    .

    .

    .

    ()

    , ,

    .

    .

    (INT NMI) .

    , ,

    .

  • 7/24/2019 interrupt 8086 russia language

    5/53

    ..

    32

    2.2. ,

    -

    . : /, . -

    .

    MN/MX. MN/MX 1, -

    MN/MX 0.

    .2.2.

    ,

    .

    , , .

    . 2.2. 8086

    .

    /. . 2.2 AD A. 8086

  • 7/24/2019 interrupt 8086 russia language

    6/53

    2. 16-

    33

    , /. -

    . -

    . (A19 A16) . .

    / (AD0AD15)

    .

    BHE ( ) ,

    (D8D15). BHE

    . BHE -. A0 BHE.

    - .

    .

    . -

    , ,

    .

    .

    ALE ( )

    ,

    /. ALE ,

    .

    (WR) ,

    /.

    . (RD) ,

    , /.

    / (DT/R)

    . , .

    .

    (DEN) . DEN , .

  • 7/24/2019 interrupt 8086 russia language

    7/53

    ..

    34

    . DEN , DT/R .

    / (M/IO) , .

    , /. .

    (INTR) -

    . , -

    .

    (INTA) .

    .

    (NMI)

    2. .HOLD ( ) ,

    . HLDA .

    HLDA, . HOLD

    HLDA .

    ,

    .

    LOCK ,

    . LOCK

    . LOCK (LOCK)

    ,

    .

    LOCK ,

    .

    QS0 QS1 . .2.1

    .

    (S0S2)

    , ,

    .2.2.

    HOLD-HLDA -

    /

    (RQ/GT). 8086.

  • 7/24/2019 interrupt 8086 russia language

    8/53

    2. 16-

    35

    2.1

    QS1 QS0

    0 0

    0 1

    1 1

    1 0

    2.2

    S2 S1 S0

    0 0 0

    0 0 1

    0 1 0

    0 1 1 t

    1 0 0

    1 0 1

    1 1 0

    1 1 1 ( )

    CLK, RESET, READY - .

    RESET , ,

    .

    , RESET

    . CLK

    . READY , /

    . READY 1

    .

    , ,

    .

    , ,

    1 - 4.

    CLK .

  • 7/24/2019 interrupt 8086 russia language

    9/53

    ..

    36

    :

    /;

    .

    1

    .

    2 4. 1 /

    .

    ALE,

    .

    2 -

    /. 4.

    RDY.

    4 .

    . 4

    1

    () ,

    . .

    .2.3

    .

    ALE.

    . 2 A/D ,

    RD, -

    . ,

    / , DT/R DEN.

    ( )

    ALE /. 2

    A/D

    . 4. WR 2

    4.

  • 7/24/2019 interrupt 8086 russia language

    10/53

    2. 16-

    37

    CLK

    M/IO

    ALE

    BHE

    A19A16

    AD15AD0

    RD

    DT/R

    DEN

    WR

    DT/R

    DEN

    .

    . 2.3.

    2.3.

    - -

    ,

    , ( ) . . 2.4.

    : ( ), .

    : ;

    , , DX.

    SP, ,

    SI, DI.

  • 7/24/2019 interrupt 8086 russia language

    11/53

    ..

    38

    -

    -

    -

    -

    -

    AX

    H L15 8

    AH AL

    BX

    BH BL

    CX

    CH CL

    DX

    DH DL

    7 0

    SP

    BP

    SI

    DI

    15 0

    CS

    DS

    SS

    ES

    PSW15 0

    OF

    DF

    IF

    TF

    SF

    ZF

    AF

    PF

    CF

    . 2.4.

    . 8-

    (, AL, , BL, , CL, DH,

    DL), , , , DH

    , AL, BL, CL, DL - .

  • 7/24/2019 interrupt 8086 russia language

    12/53

    2. 16-

    39

    . .2.3.

    2.3

    AX , /

    AL , / ,

    ,

    AH

    BX

    CX ,

    CL

    DX , /

    SP

    SI

    DI

    -

    . 8086 16- -

    : CS, DS, SS,

    ES.

    -, :

    . :

    OF, ;

    SF, ;

    ZF, ;

    AF,

    ;

    PF,

    ;

    CF, .

  • 7/24/2019 interrupt 8086 russia language

    13/53

    ..

    40

    :

    DF,

    ;

    IF, ;

    TF,

    .

    20-

    . 1

    FFFFFH.

    : , , .

    - ,

    8- ( ).

    - ,

    16- ( ),

    , - . 16-

    .

    , .

    () , -

    .

    -

    ,

    32- . 32-

    ,

    .

    .

    , 8086,

    1 ,

    .

    - ,

    16 65536 ; , 10.

    . .2.5.

  • 7/24/2019 interrupt 8086 russia language

    14/53

    2. 16-

    41

    D

    -

    - -

    . 2.5.

    , -

    .

    65536 16.

    ,

    , , .

    -

    .

    8086

    512 (.2.6): (D15-D8)

    (D7-D0).

    .

    D7-DO , - D15-D8 .

    0,

    .

    , ,

    A0=0. , ,

    =0 (.2.4).

    ,

    .

    .

  • 7/24/2019 interrupt 8086 russia language

    15/53

    ..

    42

    0FFFFFH 0FFFFEH

    00003H 00002H00001H 00000H

    A19..A1 D15..D8 BHE D7..D0 A0

    . 2.6.

    2.4

    BHE A0

    BHE A0

    0 0 0 1

    (D15D8)

    1 0

    (D7D0)

    1 1

    64 .

    .

    .

    ,

    .

    16- .

    20- .

    4

    .

    , ,

    4 0.

    .

  • 7/24/2019 interrupt 8086 russia language

    16/53

    2. 16-

    43

    - , .

    , .

    , .

    (EA).

    .2.5 ,

    .

    2.5

    -

    CS IP

    SS SP

    (-

    )

    DS CS, ES, SS

    DS CS, ES, SS SI

    ES DI

    BP SS CS, DS, ES EA

    ,

    . .

    2.4.

    , .

    ,

    ,

    , , .. . ,

    ,

    .

    , ,

  • 7/24/2019 interrupt 8086 russia language

    17/53

    ..

    44

    . , ,

    ,

    . ,

    :

    ,

    ;

    (

    ),

    ;

    ,

    , ;

    ,

    , .

    ,

    .

    .

    ( ) . ( ,

    ), ( ).

    8086 16-

    ,

    . () .

    .

    ,

    , , , ( ).

    , .

    , .

    8086 .

    ,

    . ( ) ,

  • 7/24/2019 interrupt 8086 russia language

    18/53

    2. 16-

    45

    . , (

    ) 8086

    . .2.7. (

    ).

    d w mod reg m/r dispL dispH

    7 0 7 0 7 0 7 0

    . 2.7.

    () d w. d : d=l, , d=0,

    .

    , reg .

    ( ) .

    w () : w=l, , w=0 . ,

    d w (.2.6).

    2.6

    d w

    d w

    0 0

    0 1

    1 0

    1 1

    , : mod,

    reg r/m /. reg

    , .

    reg .2.7.

    , DX,

    SP, , SI, DI .

    .

  • 7/24/2019 interrupt 8086 russia language

    19/53

    ..

    46

    2.7

    reg ( r/m) 8- 16-

    000 AL

    001 CL

    010 DL DX

    011 BL

    100 SP

    101 CH

    110 DH SI

    111 BH DI

    mod .

    , , r/m

    . mod=11, , .

    mod 11 ( ), r/m

    8- 16- .

    mod ,

    () disp,

    :

    00, disp=0 ;

    01, disp=dispL 8- ,

    16 ;

    10, disp=dispH, dispL .

    r/m ,

    .

    : mod=00 r/m =110, EA=dispH, dispL.

    . ,

    (16- ) ( 8- 16-

    ). ( ), (SI DI),

    .

    24 .

    8086 .

  • 7/24/2019 interrupt 8086 russia language

    20/53

    2. 16-

    47

    . ,

    .

    . .

    3- reg r/m (mod=11). w 8-

    16- ( ). ,

    ,

    ,

    . : AL, , AX, BL, ,

    . .

    . 8 16 ,

    . ,

    .

    . .

    .

    ,

    . 16 , - 8 (

    16 ).

    ,

    ,

    , . .

    , ,

    .

    .

    ,

    .

    , .

    ,

    . (

  • 7/24/2019 interrupt 8086 russia language

    21/53

    ..

    48

    ) .

    , .

    .

    (. 2.8). , , SI DI

    , SI DI.

    .

    .

    ,

    , ,

    . .

    LEA,

    . ,

    CALL

    16- .

    . 2.8.

    . ( )

    . ,

    ( ).

    , , , , . ,

  • 7/24/2019 interrupt 8086 russia language

    22/53

    2. 16-

    49

    , 8 16 . -

    .

    . [BREG] DISP

    . [BREG+DISP]

    . BREG

    .2.9.

    . ( ,

    )

    , , SI

    DI. .

    ,

    .

    ,

    . 8086 .

    ,

    16 .

    ADDR16 [IREG],

    . ADDR16 16- , IREG

    SI DI. , ,

    .

    ,

    () .

  • 7/24/2019 interrupt 8086 russia language

    23/53

    ..

    50

    - . .

    ,

    , (. 2.10). ,

    . ,

    SI DI , ..

    . 8086

    8- 16- ,

    . , .

    ,

    , .

    , .

    ,

    .

    .

    ,

    .

    , , . . .

    [BREG] ADDR16 [IREG], ..

    .

    .

    ,

    ,

    PC. PC ,

    (,

    PC ).

    8086

    ,

    ( ). 8-, 16 ,

    PC. ,

    +128-127

    . (SHORT)

    , 80% . ,

  • 7/24/2019 interrupt 8086 russia language

    24/53

    2. 16-

    51

    , , .. , .

    -.

    ,

    .

    . 2.10.

    .

    .

    .

    , SI

    () -, DI ()-.

    SI DI

    .

    -. -

    ,

    , .

    . ,

    -,

    . 8-

    , ,

    0255. -

  • 7/24/2019 interrupt 8086 russia language

    25/53

    ..

    52

    : DX 065535.

    DX

    -. ,

    DX.

    .

    ,

    . , ,

    ,

    .

    .

    , , , .

    .

    2.5.

    135

    , :

    , , , , ,

    .

    - -.

    :

    , /, , .

    (, ,

    ) , - ,

    .

    ( ) n.

    , , ,

    .

  • 7/24/2019 interrupt 8086 russia language

    26/53

    2. 16-

    53

    64 .

    . : , ,

    , .

    :

    ,

    .

    , .

    -, ,

    /.

    . -

    ,

    .

    . ,

    8086 , ,

    .

    : ; -;

    ;

    .

    , .

    POPF SAHF,

    .

    , ,

    . MOV

    (, ).

    :

    MOV dst,src; dst:=(src)

    MOV src

    dst .

    MOV mem/reg,mem/reg. .

  • 7/24/2019 interrupt 8086 russia language

    27/53

    ..

    54

    MOV , mem MOV mem, . ,

    MOV AL, AL

    BETA, MOV ALPHA, ALPHA.

    AL ALPHA,

    ALPHA+1. ,

    ( )

    .

    3 .

    MOV sreg,mem/reg MOV mem/reg,sreg

    /. , . ,

    MOV sreg, mem/reg

    CS, .

    2 4 .

    -; (8+)

    (9+) . MOV sreg, mem/reg

    , . . . , , DS

    F000,

    MOV AX,0F000H;

    MOV DS, ; DS F000

    XCHG .

    , .

    . 2 4 (

    ) 17+ ( ). XCHG

    .

    , XCHG .

    XCHG ,

    N.

    XLAT -

    AL 256- , . , AL

  • 7/24/2019 interrupt 8086 russia language

    28/53

    2. 16-

    55

    , . XLAT :

    1)

    AL ;

    2)

    (- DS) AL.

    XLAT

    .

    11 .

    LEA,LDS,LES

    , () , .

    LEA, LDS LES

    . LEA reg,mem

    ( )

    ( !) . , ,

    ,

    XLAT. LDS LES

    : ,

    DS;

    , DS

    ( LDS) ES ( LES).

    2 4 . , LDS

    SI, LES DI,

    SI DS,

    DI ES.

    LAHF SAHF

    8086 8080.

    LAHF ( ),

    SAHF

    (

    ).

    . 8080 PSW

    . : PUSH PSW

    , POP PSW PSW

    . 8086 LAHF SAHF .

  • 7/24/2019 interrupt 8086 russia language

    29/53

    ..

    56

    2.8

    MOV dest,src (dest)(src),

    PUSH src (SP) (SP)2

    ((SP) + 1:(SP))(src)

    POP dest (dest) ((SP)+1:(SP))

    (SP) (SP) + 2

    XCHG dest,src (temp) (dest)

    (dest) (src)

    (src) (temp)

    XLAT AL ((BX) + (AL))

    /

    IN acc, port (AL) (port) or

    (AX) (port)

    OUT port, acc (dest) (AL) or

    (dest) (AX)

    LEA dest, src (dest) EA

    LDS dest, src (dest) (EA)

    (DS) (EA + 2)

    DS

    LES dest, src (dest) (EA)

    (ES) (EA + 2)

    ES

    LAHF (AH)(SF,ZF,AF,PF,CF) AH

    SAHF (SF,ZF,AF,PF,CF)(AH) AH

    PUSHF (SP) (SP)2

    ((SP) + 1:(SP)) Flags

    POPF Flags ((SP) + 1:(SP))

    (SP) (SP) + 2

  • 7/24/2019 interrupt 8086 russia language

    30/53

    2. 16-

    57

    , :

    LAHF ;

    PUSH AX ; PUSH PSW

    POP AX ; SAHF ; POP PSW

    PUSH

    POP. ,

    , SP.

    - :

    ,

    SP. SP SS. , POP

    PUSH. , CALL

    RET . PUSH .

    PUSH mem/reg

    , POP mem/reg

    . PUSH reg POP reg

    .

    PUSH sreg POP sreg

    . , CS

    .

    , PUSHF POPF

    16- .

    TF,

    . , 8

    . ,

    PUSH reg POP reg.

    -. w, ,

    . AL

    () (). IN , port OUT port,

    . IN , OUT

  • 7/24/2019 interrupt 8086 russia language

    31/53

    ..

    58

    .

    00FF. IN , DX OUT DX,

    , 16- DX FFFF.

    DX , .

    .

    -

    , .

    8086

    , ,

    . : , ,

    .

    ,

    . 8

    16 , , .. . 8-

    0255, 16- 065535. ,

    , , -. 8- 16-.

    () : 0 ,

    1 . - . -128+127 8-

    -32768+32767 16- .

    .

    ,

    , .

    ( )

    6 .

    ; INTO

    . -, : CF

    ( ) ( )

    .

    ; AF

    ( ) ( ) .

  • 7/24/2019 interrupt 8086 russia language

    32/53

    2. 16-

    59

    ; SF ( 7 15)

    . ;

    , ; ZF ; PF

    1, 8 ; 0 ( PF

    );

    OF

    , ..

    ( 2

    . , INC reg,

    w, ,

    . .2.9.

    ADD dst, src dst: =(dst)+ (src).

    dst src

    dst.

    ADC dst,src dst: = (dsf) + (src) + (CF).

    , ADD, -

    . , CF,

    .

    :

    INC dst dst:= (dst)+1.

    . INC

    , CF . dst .

    .

    .

    CF.

  • 7/24/2019 interrupt 8086 russia language

    33/53

    ..

    60

    2.9

    ADD dest, src (dest) (dest) + (src)

    ADC dest, src (dest) (dest) + (src) + (CF)

    INC dest (dest) (dest) + 1

    AAA If ((AL) and 0FH)>9 or (AF)=1

    then (AL) (AL) + 6

    (AH) (AH) + 1

    (AF) 1

    (CF) (AF)

    (AL) (AL) and 0FH

    ASCII

    DAA If ((AL) and 0FH)>9 or (AF)=1

    then (AL) (AL)+6; (AF)1

    if (AL) > 9FH or (CF) = 1 then

    (AL) (AL) + 60H, (CF)1

    SUBdest, src (dest) (dest)(src)

    SBB dest, src (dest) (dest)(src)(CF)

    DEC dest (dest) (dest)1

    NEG dest :

    (dest) 0FFH(dest)

    (dest) (dest) + 1

    :

    (dest) 0FFFFH(dest)

    (dest) (dest) + 1

    CMP dest, src (dest)(src)

    AAS If ((AL) and 0FH)>9 or(AF)=1 then (AL) (AL)6

    (AH) (AH)1

    (AF) 1

    (CF) (AF)

    (AL) (AL) and 0FH

    ASCII

    DAS If ((AL) and 0FH)>9 or

    (AF)=1 then (AL) (AL)6;

    (AF)1

    if (AL) > 9FH or (CF) =1 then(AL) (AL)60H, (CF)1

  • 7/24/2019 interrupt 8086 russia language

    34/53

    2. 16-

    61

    .2.9

    MUL src src :(AX) (AL) (src)

    If (AH) = 0

    then (CF) 0

    else (CF) 1 (OF) (CF)

    src :

    (DX:AX) (AX) (src)

    If (DX) = 0

    then (CF) 0

    else (CF) 1 (OF) (CF)

    IMUL src src :

    (AX) (src) (AL)

    src :

    (DX:AX) (src) (AX)

    AAM (AH) (AL) / 0AH

    (AL) (AL) mod0AH

    ASCII

    DIV src src :(AL) (src) / (AX)

    (AH) (src) mod(AX)

    src :

    (AX) (src) / (DX:AX)

    (DX) (src) mod(DX:AX)

    IDIV src src :

    (AL) (src) / (AX)

    (AH) (src) mod(AX)

    src :

    (AX) (src) / (DX:AX)

    (DX) (src) mod(DX:AX)

    AAD (AL) (AH) 0AH + (AL)

    (AH) 0

    ASCII

    NEG (

    ) : NEG dst dst=0 - (dst).

    , .

    80 8000 , OF. ,

  • 7/24/2019 interrupt 8086 russia language

    35/53

    ..

    62

    CF , , , CF=0.

    . , . ,

    .

    ( AF)

    .

    8086 : .

    .

    .

    AL, 16-

    AL. (ext) AL. src ,

    , 32

    DX .

    DX.

    , OF CF

    , DX. OF CF

    .

    MUL . IMUL src

    , MUL src,

    . ,

    DX,

    ( 00 (0000) FF (FFFF)

    ()), OF CF . ,

    . OF, CF=0. IMUL .

    8086 ,

    .

    ( AL, DX 8- 16- )

    src. AL ( ),

    ( DX). .

  • 7/24/2019 interrupt 8086 russia language

    36/53

    2. 16-

    63

    . ( FF FFFF) ,

    0, .

    : ; IF TF

    0; CS ; CS 00002,

    PC ; PC

    00000.

    0,

    : 00000 00002. 0 (,

    ),

    .

    IDIV ,

    DIV, .

    -127+127,

    , -32767+32 767, .

    0.

    IDIV . 8086

    : (BCD-) (ASCII-

    ). BCD- (

    ), 8421; ASCII-

    ( ),

    0011 ( ASCII), .

    BCD- :

    ,

    , . BCD- ,

    BCD- :

    , . . , 9;

    ,

    16, 10. ,

    AF, CF.

    BCD-, ADD ADC

    AL,

  • 7/24/2019 interrupt 8086 russia language

    37/53

    ..

    64

    DAA. :

    1)

    AF=1 AL

    ( 1015), AL 06 AF

    ;2)

    CF=1 AL

    , AL 60

    CF .

    DAA AL -

    , -

    OF, DAA

    . BCD-, , :

    SUB SBB, , AL, DAS .

    8086

    ,

    DAS :

    1) AF=1 AL

    , AL 06 AF ;

    2)

    CF=1 AL

    , AL 60 CF

    .

    .

    , 8086, -

    NOT (), AND (), OR (), XOR

    ( , .. 2) TEST,

    , ( ).

    , .. .

    .2.10.

    :

    AND dst, src dsi:=(dsi)^ (src)

    OR dst, src dst:==(dst)\/ (src)

    XOR dst, src dst:=(dst)@ (src)

    TEST dst, src (dst) (src)

    NOT src src:= (src)

  • 7/24/2019 interrupt 8086 russia language

    38/53

    2. 16-

    65

    NOT . AND, OR, XOR TEST

    :

    OF CF , ;

    SF, ZF PF

    ,

    ; AF .

    AND

    ,

    - .

    .

    OR

    1 ,

    .

    XOR

    ,

    .

    w, ,

    , .

    mem/reg, count. mem/reg , a count ( )

    .

    1 ( ) CL.

    1 , -

    CL,

    . , , (

    ). 1 CL

    : v=0, count=1, v=l, count=(CL).

    () .

    .

    -

    : AF ; CF

    ,

    OF=1, (-) ;

  • 7/24/2019 interrupt 8086 russia language

    39/53

    ..

    66

    OF ; OF CF; SF, ZF PF -

    . RCL RCR

    , CF 1 . 8086

    , 255.

    SHL SHR

    . , -

    , . SAL

    SAR .

    ,

    , , . . SAL

    SHL

    .

    -

    . , ,

    SAR , IDIV

    , , -

    . , -10 () 2 -3, -10 4 -2.

    , IDIV ( -

    ) , SAR

    , - .

    :

    MOV [DI],0 ;

    AND DL,OFH ;

    MULT: MOV AL,[SI] ;

    INC SI ; AND AL,OFH ;

    MUL DL ; ;

    ADD AL,[DI] ;

    ;

    MOV [DI],AL ;

    INC DI ;

    MOV [DI], ;

    DEC ; -JNZ MULT ;

  • 7/24/2019 interrupt 8086 russia language

    40/53

    2. 16-

    67

    2.10

    NOT dest :

    (dest) FFH(dest)

    :

    (dest) FFFFH(dest)

    AND dest, src (dest) (dest) and (src)

    (CF) 0; (OF) 0

    OR dest, src (dest) (dest) or (src)

    (CF) 0; (OF) 0

    XOR dest, src (dest) (dest) xor (src)

    (CF) 0; (OF) 0

    -

    TEST dest, src (dest) and (src)

    (CF) 0; (OF) 0

    SHLdest, countSAL dest, count

    15(7) 0CF 0

    /-

    SHR dest, count 15(7) 0CF 0

    SAR dest, count 15(7) 0CF

    ROL dest, count 15(7) 0CF

    ROR dest, count 15(7) 0CF

    RCL dest, count 15(7) 0CF

    RCR dest, count 15(7) 0

    CF

  • 7/24/2019 interrupt 8086 russia language

    41/53

    ..

    68

    .

    . , ,

    . PC.

    . -

    CS PC.

    . ,

    , , .

    ,

    ( PC CS), .

    8086 .

    , IRET.

    . ()

    - PC

    .

    ( NEAR).

    -

    PC CS

    (: ).

    ( FAR),

    . 8086

    , , ,

    , (.2.11).

    PC PC CS, .

    JMP dispL

    , . -

    ( 16 ) PC, ,

  • 7/24/2019 interrupt 8086 russia language

    42/53

    2. 16-

    69

    JMP. -128+127. ,

    , - .

    . ,

    .

    JMPdisp ,

    , 16- . --

    ,

    -32768+32767 ,

    JMP disp.

    JMP mem/reg

    . , , - 16- ,

    . ,

    dispL, dispH .

    8086 19

    , .

    . , ( JCXZ -

    ),

    .

    (

    AF), .

    , PC (

    16 ), ,

    . ,

    .

    -128+127 .

    , , .

    .

    JMP, -32768+32 767 .

    , ,

    JMP,

    . ,

    JMP .

    JMP RET.

  • 7/24/2019 interrupt 8086 russia language

    43/53

    ..

    70

    2.11

    Jcond disp8 If cond=1

    then (IP)(IP) + disp8

    , -

    CALL dest

    dest

    -

    -

    -

    If inter-segment

    then (SP) (SP)2

    ((SP)+1:(SP))(CS)

    (CS) SEG

    (SP) (SP)2

    ((SP) +1:(SP)) (IP)(IP) dest

    RET

    JMP dest If inter-segment

    then (CS) SEG

    (IP) dest

    LOOP disp8 (CX) (CX)1

    if (CX) 0then (IP) (IP) + disp8

    LOOPE/LOOPZ disp8 (CX) (CX)1

    if (ZF) = 1 and (CX) 0

    then (IP) (IP) + disp8

    , /

    LOOPNE/LOOPNZ

    disp8

    (CX) (CX)1

    if (ZF) = 0 and (CX) 0

    then (IP) (IP) + disp8

    , /

    JCXZ disp8 If (CX) = 0

    then (IP) (IP) + disp8

    ,

    CX=0

    INT num

    INTO , -

    IRET

  • 7/24/2019 interrupt 8086 russia language

    44/53

    2. 16-

    71

    2.12

    ,

    JA/JNBE (CF or ZF)=0 /

    JAE/JNB CF=0 /

    JB/JNAE CF=1 /

    JBE/JNA (CF or ZF)=1 /

    JC CF=1

    JE/JZ ZF=1 /

    JG/JNLE ((SF xor OF) or ZF)=0 /

    JGE/JNL (SF xor OF)=0 /

    JL/JNGE (SF xor OF)=1 /

    JLE/JNG ((SF xor OF) or ZF)=1 /

    JNC CF=0

    JNE/JNZ ZF=0 /

    JNO OF=0

    JNP/JPO PF=0 /

    JNS SF=0

    JO OF=1

    JP/JPE PF=1 /

    JS SF=1

    JCXZ ,

    , , ( CX)

    .

    . , , ZF=1

    MORE, 0400

    .

    :

    JNZ NEXT ; ZF=0

    JMP MORE ; ZF=1

    NEXT:

    JMP .

  • 7/24/2019 interrupt 8086 russia language

    45/53

    ..

    72

    , ( ) ,

    .

    .

    ,

    , .

    CALL

    . .

    , CALL. . ,

    , RET

    . ,

    , .

    8086 . ,

    . -

    ( NEAR),

    ( FAR).

    PC, PC CS.

    , CALL ,

    ; CALL

    dispL. PC CS CALL

    JMP,

    ( SS)

    SP. , SP

    .

    8086 ,

    .

    CALL addr

    5 ,

    .

    : SP 2; SP SS CS;

  • 7/24/2019 interrupt 8086 russia language

    46/53

    2. 16-

    73

    SP 2; SP SS PC; PC

    , CS seg.

    CALL mem . PC

    CS ,

    PC, - CS.

    RET

    . ,

    PC, SP 2.

    ( )

    .

    .

    PC. ,

    -128 +127 .

    . , .

    LOOP ( ), , ()0,

    PC- ; (()=0 )

    . , LOOP MORE

    :

    DEC

    JNZ MORE

    , .

    LOOP. , LOOP 5

    ( ) 17 ( )

    .

    .

    LOOPE LOOPZ

    , ,

    (-

    PC), () 0 ZF=1. . ,

  • 7/24/2019 interrupt 8086 russia language

    47/53

    ..

    74

    LOOP ZF.

    6 18 .

    LOOPNE LOOPNZ .

    LOOP,

    ZF.

    8086 ,

    .

    , () INT, ,

    NMI ,

    , .

    INT type ,

    .

    v , , , ,

    INT.

    v=0, - ,

    . v=l,

    0 255.

    INT

    : 2;

    (

    PUSHF); IF TF (

    ); 2;

    CS; ADDRESS

    4; CS

    ADDRESS+2; 2; PC; PC

    ADDRESS.

    ,

    .

    , . . .

    ,

    , . ,

  • 7/24/2019 interrupt 8086 russia language

    48/53

  • 7/24/2019 interrupt 8086 russia language

    49/53

    ..

    76

    .

    LEA, LDS LES.

    SI DI ,

    . DF

    (DF=0) (DF=1) .

    ,

    - ,

    . ,

    .

    . () REP.

    , ,

    ( )

    DS:SI, ES:DI .

    : REP, REPE, REPZ,

    REPNE REPNZ. .

    . REP

    MOVS STOS

    ", ", .. ,

    . REPE REPZ

    ,

    REP. CMPS SCAS

    ZF=1,

    . REPNE REPNZ , ZF

    . .

    -

    .

    . , ,

    ,

    (, ).

    .

  • 7/24/2019 interrupt 8086 russia language

    50/53

    2. 16-

    77

    , . , -

    , (-

    , ). - , ,

    , .

    MOVS.

    : MOVS dst.src dsi:=(src)

    src, SI, dst, DI,

    SI DI -

    . . REP MOVS-

    -. -

    . ( -)

    MOVSB MOVSW, (-

    W-). .

    CMPS.

    : CMPS dst,src (src)-(dst)

    dst,

    DI, src,

    SI.

    , . -

    . , ,

    CMPS JL (, ), -

    , src dst.

    CMPS REPE (

    REPZ), ", ". -

    REPNE ( REPNZ) "-

    , (

    )". , CMPS

    .

    SCAS. ( )

    : SCAS dst ()-(dst)

    dst ( ),

    DI, AL ()

  • 7/24/2019 interrupt 8086 russia language

    51/53

    ..

    78

    (). , . REPE (

    REPZ)

    , . SCAS REPNE ( REPNZ),

    " ,

    ".

    LODS.

    : LODS src := (src)

    , (

    ), SI, AL

    , SI . .

    ,

    MOV , src INC SI ( DEC SI - .

    LODSB LODSW, .

    STOS. : STOS dst dst:=(ac)

    () AL () ,

    DI, DI .

    ES,

    , - .

    .

    , .

    .

    .

    , -

    . .

    CLC, CMC STC ,

    1 CF.

    RCR RCL. CLD STD

    DF.

    SI DI . CLI STI IF.

  • 7/24/2019 interrupt 8086 russia language

    52/53

    2. 16-

    79

    CLI IF INT ( ).

    NMI

    . IF .

    STI IF 1, INT.

    , STI.

    2.13

    STC

    CLC

    CMC

    STD

    CLD

    STI

    CLI

    HLT

    WAIT

    ESC

    LOCK

    NOP HLT

    .

    CLR, NMI,

    INT, .

    , .

    WAIT ,

    TEST.

  • 7/24/2019 interrupt 8086 russia language

    53/53

    ..

    WAIT . LOCK, ,

    ( ) LOCK

    . LOCK .

    ESC ,

    ()

    .

    ,

    NOP ( ) .

    ,

    .

    1.

    8086?

    2.

    . ?3.

    8086.

    .4. 8086.

    .

    5. . . .

    , ?

    6.

    8086?

    , ?

    7. ? ,

    , , , , , ?

    8.

    8086?

    9.

    ?