interrupt 8086 russia language
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.
?