Assembler Eto Prosto
-
Upload
zalupanegra -
Category
Documents
-
view
247 -
download
0
Transcript of Assembler Eto Prosto
-
7/26/2019 Assembler Eto Prosto
1/328
!
!
#$%%
-
7/26/2019 Assembler Eto Prosto
2/328
681.3.068+800.92
32.973.26-018.1
17
. .
17 . .2- ., . .
.: -, 20
11.
336.: . +
CD-ROM
ISBN 978-5-9775-0591-8
-
. Intel, 16- 32- ,
, ,
, . , -
, -
( Norton Commander FAR Manager) .
, , -
. -
. - , -
, .
681.3.068+800.92
32.973.26-018.1
:
.
.
.
02429 24.07.00. 31.01.11. 70 100
1/16.
. . . . 27,09.
2000 . "-", 190005, -, ., 29.
- 77.99.60.953..005770.05.09 26.05.2009.
.
" ""
199034, -, 9 , 12.
ISBN 978-5-9775-0591-8 .., 2011 , "-", 2011
-
7/26/2019 Assembler Eto Prosto
3/328
................................................................................................................................... 1
.......................................................................................................................... 2
...................................................................................................... 3
I. : ............................................................................. 7
1. ........................................................................................................ 9
1.1. ................................................................................ 91.2. ........................................................................................................ 121.3. ......................................................................................................... 13
1.4. .................................................................................................................................... 16
2. .................................................................................................. 17
2.1. 808680186 ...................................................... 172.1.1. ............................................................................................................. 172.1.2. -......................................................................................................... 182.1.3. ..................................................................................................... 18
2.2. .......................................................................................... 192.2.1. add................................................................................................................... 19
2.2.2. sub................................................................................................................... 19
2.2.3. inc.................................................................................................................... 20
2.2.4. dec................................................................................................................... 212.3. ....................................................................................................... 21
3. .............................................................. 23
3.1. . ............................................................................ 233.1.1. ................................................................ 253.1.2. ................................................................ 253.1.3. .............................................. 26
3.2. ............................................................................. 26
3.2.1. ......................................................................... 28
3.3. ...................................................................................................... 323.3.1. ASCII?............................................................................................................. 32
3.4. ....................................................................................................... 33
3.5. ...................................................................................................................... 34
II. ....................................................................................... 37
4. ......................................................................................................... 39
4.1. ..................................................................................... 39
4.1.2. .................................................................................................... 39
4.2. .................................................................................................................... 42
4.2.1. ....................................................................... 43
4.3. ..................................................................................... 44
4.3.1. .......................................................................... 45
-
7/26/2019 Assembler Eto Prosto
4/328
IV
4.4. ....................................................................................................... 454.4.1. .......................................................................................... 46
5. ............................................................................................................ 47
5.1. ............................................................................................................... 47
5.2. ....................................................................................................................... 48
5.3. ....................................................................................................... 51
5.4. AFD....................................................................................... 53
6. ......................................................................................................... 54
6.1. ......................................................................................................................................... 54
6.2. ....................................................................................................... 616.2.1. nop................................................................................................................... 61
6.2.2. ........................................................................................................... 62
7. ................................................................................................ 64
7.1. 6............................................................................................... 647.2. ............................................................................................................... 66
7.3. .................................................................... 69
7.4. ASCII..................................................................................................... 69
7.5. ....................................................................................................... 71
8. ..................................................................................... 74
8.1. .............................................................................................. 74
8.2. .................................................................................................... 768.3. ....................................................................................................... 82
9. ........................................................................................................ 84
9.1. .............................................................................................. 84
9.2. ....................................................................................................... 87
III. , , ........................................... 91
10. . .......................................... 93
10.1. ............................................................................................ 93
10.2. ..................................................................................................................................... 97
10.2.1. .......................................................................... 98 ?.................................................................................................... 98
?................................................................................. 98
?.................................................................................................................. 98
?.......................................................................................... 98
?....................................................................................................... 98
?....................................................................................................... 98
10.3. ................................................................................................................................ 99
10.3.1. ........................................................................................... 9910.4. ...................................................................................... 101
10.4.1. ................................................................ 104
10.5. ........................................................................................... 104
10.5.1. ?........................................................................... 106
11. ................................................................................ 109
11.1. ............................................................................................................................. 109
11.2. ................................................................................................... 112
-
7/26/2019 Assembler Eto Prosto
5/328
V
12. ............................................................................. 115
12.1. .............................................................................................................................. 11512.2. .................................................................... 11512.3. ........................................................................................... 118
12.4. xor sub ........................................ 125
12.5. ...................................................... 126
13. : .................................................................... 127
13.1. ................................................................................................................................. 12713.2. ............................................................................................................................. 12813.3. movs..................................................................................... 13213.4. , ......................... 134
13.5. ..................................................................................................................... 135
14. ................................................................................. 137
14.1. ................................................................................................................... 137
14.1.1. COM?.......................................................... 137
14.1.2. ?................................................. 137
14.2. SuperShell .......................................................................................................... 139
14.2.1. ................................................................................................. 139
14.2.2. 80286+................................................... 14014.3. ().................................................................................. 142
14.3.1. ........................................................................... 142
14.3.2. Draw_frame............................................................................................... 143
?................................................................. 14414.4. ............................................................................................................................. 145
14.5. ............................................................................................................... 145
15. .................................................................. 148
15.1. ................................................................................................................................. 148
15.1.1. ....................................................... 150
15.1.2. .............................. 151
.................................................................................................................... 151 ..................................................................................................................... 151
15.2. ret retf.......................................................................................................... 152
15.2.1. ret................................................................................................................. 152
15.2.2. retf................................................................................................................ 153
15.3. . iret............................................ 155
15.4. ............................................................................................................................. 157
15.5. ..................................................................................... 159
15.5.1. or................................................................................................................. 159
15.5.2. and............................................................................................................... 160
15.5.3. xor................................................................................................................ 161
15.6. .................................................................... 162
15.6.1. 05h...................................................................................... 162
15.6.2. 09h...................................................................................... 162
15.6.3. 1Ch..................................................................................... 163
15.7. ................................................................................................................................ 164
16. ............................................................................ 165
16.1. ....................................................................................................... 165
16.1.1. 03h.......................................................................................................... 165
-
7/26/2019 Assembler Eto Prosto
6/328
VI
16.2. ............................................................................... 170
16.2.1. ................................................................................... 170
16.3. ............................................................................................................................. 172
17. ................................................................................... 174
17.1. .................................................. 174
17.2. ................................................................................................................................... 176
17.2.1. "-".................................................................................. 180
17.2.2. "-"...................................................................... 181
18. ........................................................ 183
18.1. .......................................................................... 183
18.2. 17.............................................................................................................. 18418.3. Super Shell......................................................................................................... 185
18.3.1. .................................................................... 185
18.3.2. ..................................................................................... 192
18.3.3. .......................................... 192
18.3.4. Copy_scr/Restore_scr(display.asm) ...................................................... 193
18.3.5. scas.............................................................................................................. 19418.3.6. ................................................................. 19618.3.7. ...................... 198
18.4. ................................................................................................................................ 199
19. ........................................................................... 200
19.1. .............................................................................................................................. 20019.2. ?........................................................................... 204
20. ..................................................................................... 205
20.1. ................................................................................................................................... 20620.1.1. ret, calljmp....................................................................................... 20620.1.2. ......................................................................................................... 207
20.1.3. ...................................................................................... 210
20.2. ................................................................................................................................ 211
21. .................................................................... 213
21.1. SuperShell .......................................................................................................... 213
21.1.1. .......................................................................................................................... 213
21.1.2. ...................................................................................................................... 214
............................................................................................................... 214
............................................................................................................... 215
21.1.3. test................................................................................................................ 21521.2. DOS..................................................................................... 219
21.2.1. .................................................................................................. 219
21.2.2. .................................................................. 222
22. ................................................................................... 223
23. PSP DTA. ( DOS)................... 225
23.1. ............................................................................................ 22623.2. ( MS-DOS) ............................................................... 227
23.3. ............................................................................................................ 23123.3.1. ............................................................................... 232
-
7/26/2019 Assembler Eto Prosto
7/328
VII
23.3.2. ................................................................................... 23323.3.3. " "............................................................. 235
23.4. ...................................................... 237
24. ........................................................................................ 238
24.1. 80386/80486. ......................... 238
24.1.1. 16- 32- ................................................................................... 240
24.1.2. use16/use32................................................................................................ 241
24.1.3. ........................................... 241
24.2. . ................................................................................... 242
24.3. ................................................................................................................................ 247
25. ......................................................................................... 248
25.1. ......................................................................................... 248
25.2. ................................................................................ 249
25.3. ....................................................... 25425.4. ..................................................... 255
25.5. ............................................................................................................................. 25625.5.1. .............................................................. 256
26. ............................................................................................ 258
26.1. IBM- ......................................... 258
26.2. ....................................................................................................... 25926.3. ............................................................................................................................. 260
26.3.1. ....................... 261
26.3.2. ........................................................ 262
27. ............................................................................. 264
27.1. ............................................................................................. 264
27.1.1. 21h.......................................................................................... 26427.1.2. ?....................................................... 267
27.1.3. , ........................................................... 268
27.2. ............................................................................................................................. 269
28. ................................................. 271
28.1. ............................................................... 271
28.2. ........................................................................ 27328.3. ......................................................................................... 274
28.4. .................................................................. 27628.5. ............................................................................... 276
29. ................................................................................. 278
29.1. .............................................................. 27829.1.1. ....................................................... 279
?....................................................... 279 4 ?......................... 280
bx (3)?...................................................................... 280
29.1.2. PSP................................................................................... 280
29.1.3. EPB.......................................................................................................... 281
( DOS)................. 282
DOS?............................................................ 283
........................................................................... 283
FCB.................................................................................. 284
-
7/26/2019 Assembler Eto Prosto
8/328
VIII
29.1.4. ................................................................................................ 284
29.1.5. ....................................................................................................... 285
29.2. " "........................................................................................... 286
30. .......................................................................... 288
30.1. (XMS) . .............................................................. 288
30.2. XMSmem.asm. XMS-......................................... 289
30.2.1. XMS-..................................................................................... 289
30.3. XMSblock.asm. .......................................................................................................... 291
30.3.1. ................................................................................. 293
30.3.2. XMS-...................................................... 293
30.4. XMScopy.asm. ......................................................................................................... 294
31. ............................................. 296
31.1. Super Shell ......................................................................................................... 29631.1.1. ........................................................... 297
31.1.2. ................................................................................................ 298
31.2. ............................................................................ 299
31.2.1. ................... 299
31.2.2. - ..... 300
32. ............................................................. 30232.1. ?................................................................................................... 302
32.1.1. ............................................................................. 302
32.1.2. .................................................................................................... 30332.1.3. (FAT).......................................................................... 304
32.2. ................................................................................... 305
32.3. ............................................................................................... 306
32.3.1. FAT, FAT32.......................................... 306
............................................................................................................... 307
1. ( ).................................................................................................... 309
1.1. MASM 6.106.13 .............................................................................................. 309
1.2. .............................................................................................................. 309
1.3. ....................................................................................................................... 310
1.3.1. Microsoft (MASM)............ 311
2. .......................... 312
3. .......................................................................... 313
3.1. ASCII................................................................................................ 313
3.2. ASCII................................................................................................ 3203.3. - ..................................................................................................... 322
4. -........................................................................ 324
............................................................................................................ 325
-
7/26/2019 Assembler Eto Prosto
9/328
, . , -
, ,
. , -
, , -. , -
: , ,
.
"? ! ". ,
18000 , -
. -, (
). -
MS-DOS Windows.
, -
. , -
, .
.
, , ,
. ,
, , , .
, ,
, , , .
:
I , -
( ), II-
Windows; III
/ ;
,
;
-
7/26/2019 Assembler Eto Prosto
10/328
2
, ;
;
, 10,
:
;
;
( Norton Commander, FARManager ..) -
XMS-;
(, -
).
, ,
. -, , -
-
, . - , .
- ,
http://www.Kalashnikoff.ru (
). .
.
(-), .
.
,
, , , -
, , -.
, ! , . -
IIIII.
! ,
, ( -
, , , .).
, , , -
, -
http://RFpro.ru.
,
.
-
7/26/2019 Assembler Eto Prosto
11/328
3
1. ( MS-DOS)
-
( Windows)?
-, -. .
, .
-, WinAPI, ,
MS-DOS. WinAPI
, Win-
dows. , -
WinAPI.
-, , COM-, -
MS-DOS Windows, .
2. -
?
Microsoft
, -
. , , MS-DOS 3.30, -
, , , -
, , .
Windows 95/98/2000/XP/Vista ,
, -
MS-DOS, DOS-, -
"" , , ,
, , , DOS4GW.
, -
(Windows Explorer), . ,NortonCommander, Far Manager,
, .
Microsoft (Windows)
MS-DOS: | | !"#| .
,
, COM- MS-DOS.
Microsoft IBM- :
Windows 2000 Pro Server;
Windows XP Home Edition Pro;
Windows Vista/Server 2008/7.
-
7/26/2019 Assembler Eto Prosto
12/328
4
!
, Windows. . ? : !
3. ,
, ? , , , , Akelpad,
- (, Far Manager). ,
, .. -
. Far Manager
(). , ,
, , .
,
. MASM.EXE (ML.EXE)
Microsoft, TASM.EXE Borland, FASM . Windows MASM32
.
http://Kalashnikoff.ru. , -
,
. MASM 6.11
Macro Assembler
Microsoft 6.11 I
MASM32 II, . -
, -
2 http://RFpro.ru.
(AFD, SoftIce
, CodeView
).
.
AFD CodeView SoftIce
.
, , ,
. IDA,
.
, : http://www.Kalashnikoff.ru.
4. ?
.
, .
().
().
1. , ,
, . , -
, , , -
-
7/26/2019 Assembler Eto Prosto
13/328
5
, . ,
Basic, Pascal, C - ,
. , .
, -
MS-DOS, .. -
(| | !"#). -
Far Manager, Windows Commander, Total Commander ..
5. ?
.
Intel 8086, 80286, 80386, 80486.
16- 32- .
.
. (XMS-).
.
CGA, EGA, VGA ().
.
BIOS () MS-DOS.
, .
.
. MS-DOS Windows.
, .. -
.
6. , ?
, ,
http://RFpro.ru. ,
:
;
;
, -
.
http://RFpro.ru
!
1 -
, "Hello, world!".
!
-
7/26/2019 Assembler Eto Prosto
14/328
I
:
-
7/26/2019 Assembler Eto Prosto
15/328
1
1.1.
-
. . - . , , -
, .
, , -
, 10 . :
1 10 = 10
10 10 = 100
100 10 = 1000
.. 0 9, .. (-
, ).
, ,
"". "" , .. -
. 0 9 , ,
: A, B, C, D, E, F. F, , -
15 (.1.1).
1.1.
0 0 26 1A
1 1 27 1B
2 2 28 1C
3 3 29 1D
4 4 30 1E... ... ... ...
8 8 158 9E
-
7/26/2019 Assembler Eto Prosto
16/328
I. : 10
1.1 ()
9 9 159 9F
10 A 160 A0
11 B 161 A1
12 C 162 A2
13 D ... ...
14 E 254 FE
15 F 255 FF
16 10 256 100
17 11 257 101
... ... ... ...
, -
, 16 (1.1).
1.1
1 16 = 10
10 16 = 100
100 16 = 1000
..
1.1 ?
: 10, 12, 45, 64, 12, 8, 19?
, . , -
, -
h H ( .hexadecimal),
hex. , , . 0
9 , , 5
5h, . , 1
(1.2 1.3).
1.2.
1 16 = 10h
"#$ % "& ' "##$
"##$ % "& ' "###$
-
7/26/2019 Assembler Eto Prosto
17/328
1. 11
1.3.
"$ % "#$ ' "#$
"#$ % "#$ ' "##$
"##$ % "#$ ' "###$
-
.
, , -
.
, .
10 ( 0 9) 6 (A, B, C, D,
E, F). -
, 16 . -
, .. - .
,
. ,
,
. , 1.1.
1.1. ,
(((
)#"* +,- .$/0
)#1* +,- .2/3
(((
)"4* +,- 52/46$
(((
, ,
! - , :
(01) -, (15)-.
, -, , -
, -
. ,
.
. -
. :+,- .$/0
789 6:/0
-
7/26/2019 Assembler Eto Prosto
18/328
I. : 12
. , , -
, .
, -
.
1.2. , (\001\prog01.asm) (1.2).
1.2.
)#"* ; ?@A+@BC
)#1* ,DA "##$
)#E*
)#F* G@AHBI)#4*
)#&* +,- .$/0
)#J* +,- 5%/,KK?@C 7@??.A@
)#3* HBC 1"$
)#0*
)"#* HBC 1#$
)""*
)"1* 7@??.A@ 5L M:@22,/ N,D25OPM
)"E* ; @B5?
)"F* @B5 G@AHB
: -
, !
- ( -
\001\prog01.asm, 001, prog01.asm
DOS-).
, ! 1.2, -
. .
, .
. , (01), (02) (13) .
(03), (05), (09) (11) .
. -
.
. (04) -
. , .
(14) @B5 G@AHB(G@AHB; @B5). -
. G@AHB
-
7/26/2019 Assembler Eto Prosto
19/328
1. 13
. ,
-
7/26/2019 Assembler Eto Prosto
20/328
I. : 14
G'14
Addition
; 35
;
(((
Addition
; ' 6 R G
; ,
() 655HCH,B,
, 6 G. -
.
, , ,
, , , .
,
.
(08) (.1.2)
( ), . , , , ..
. ( ,
) . (08) : "
" (HBC . interrupt ).
, 21 h. , , -
(33 ). ,
HBC 1"$ HBC EE. . -
, .
(10) , , 1#$.
- . -
( DOS).
1#$ , (, -
). , Norton Commander DOS Navigator. -
@%HC .
(12) . (+@??.A@ -
) . (, +@???CDHBA.). (07),
5% .
-
7/26/2019 Assembler Eto Prosto
21/328
1. 15
, 7@??1. ,
(09), :(((
)#0* +,- .$/0
)"#* +,- 5%/,KK?@C 7@??1
)""* HBC 1"$
)"1* HBC 1#$
)"E* 7@??.A@ 5L M:@22,/ N,D25OPM
(14) Mess2 db ' !$'
)"4* ; @B5?
)"&* @B5 G@AHB
, , .
7@??.A@ 7@??1 P.
. , 1"$
, - P. , , "" -
, .
. 1. -
, COM-, EXE!
COM-, (MASM/TASM) -
. COM- Macro Assembler -
6.11 .1.1.
2, -
. (AFD, CodeView), ( !)
.
, -
.
.1.1. Prog01.com
-
7/26/2019 Assembler Eto Prosto
22/328
I. : 16
.1.2. AFD Pro
.1.2 , AFD Pro. , -
, , . - .
1.4.
.
, . , 34 , .
, , , ,
. , , . , , , . , - , .
, , , , 10 "", S8T,
U=VW, XTYUW ., . - , - -
. . - , , .. , , . , , .. , " ".
* * * 2
.
-
7/26/2019 Assembler Eto Prosto
23/328
2
2.1.
808680186
, ,
- . 808680186
14. 1 : !" #$. .2.1, 2.3
2.4 , %& , -
.
2.1.1.
( ). : ,
. .2.1 32- ,
0 4294 967 295 (0FFFFFFFFh). -
. 16-, 0
65 535 0h FFFFh , .
8- : !",!(, )", )(, *",
*(, #", #(. 255 (FFh).
( ) 16- .
2.1.
!"# !%#
&' (' )' *'
!" !( )" )( *" *( #" #(
+,-, -
. , , !( 35h, -
:
+,- !(./0"
-
7/26/2019 Assembler Eto Prosto
24/328
I. : 18
!$ 346Ah, :
+,- !$./123"
, ,
. , -
:
+,- !".45/" 66"
+,- )$.45/10" 6666"
+,- #(.477" 66"
,
(12h), (5h), : 0C5h.
, - , -
, . .
, +,- !$.45/1".
!" 12h, !(34h. !", !(, )", )(, *", *(, #"
#( (Low) (High) 16- (.2.2).
2.2.
+,- !$.45/1"
+,- )$.0289"
+,- *$.:3;". #( ? 767"
2.1.2. -
@%( ) #%( ) -
. )& @& (.2.3).
.
2.3.-
+, -, (. +.
2.1.3.
(.2.4)
(, ). -
, .
2.4.
/0 -0 !0 00
-
7/26/2019 Assembler Eto Prosto
25/328
2. 19
2.2.
: !##,@A), %B*, #C*.
2.2.1. add !## .2.5. -
.
.
, () ,
. , -
, .
2.5. !""
!## . Addition 8086
8086, -
, , (80286, 80386,
80486, Pentium ..).
!## (2.1).
2.1. &**
mov al,10 ; al 10
!## !(.40 D!( ? 50D !(, 15
mov ax,25000 ; ax 25000
!## !$.47777 D!$ ? /0777D !$, 10000
mov cx,200 ; cx 200
mov bx,760 ; bx827!## *$.)$ D*$ ? :27. )$ ? 827 E)$ ); *$,
D)$
2.2.2. sub
@A) (.2.6, 2.2).
2.6. #$%
@A) . Subtraction 8086
-
7/26/2019 Assembler Eto Prosto
26/328
I. : 20
2.2. +1(
+,- !(.47
@A) !(.8 D!( ? /D !(, 7
+,- !$.50777
@A) !$.47777 D!$ ? 40777D !$, 10000+,- *$.477
+,- )$.40
@A) *$.)$
, . , 0
65535. . -, 100, , - 100 . , :
FFF
+,- !$.5877
+,- )$.40777
!## !$.)$
FFF
!$ 17700,
)$15 000. !## !$.)$
80486. , 486 DX2-66 0 0FFFFh 66 (!) !
2.2.3. inc
%B* .2.7.
2.7. &'(
%B* Increment 8086
%B* (
). :
add , 1
( 80486)
(2.3).
-
7/26/2019 Assembler Eto Prosto
27/328
2. 21
2.3. ,2)
+,- !(.40
inc al ; al = 16 ( add al,1)
+,- #"./:"
%B* #" ;dh = 3Ah ( add dh,1)+,- *(.16"
%B* *( Dcl = 50h ( add cl,1)
2.2.4. dec
#C* .2.8.
2.8. ")(
#C* Decrement 8086
#C* (2.4).
:@A) . 4
2.4. *3)
+,- !(.40
dec al ; al = 14
+,- #"./3"
#C* #" D#" ? /:"
+,- *(.07"
#C* *( D*( ? 16"
2.3.
, -
, .
DOS.
BIOS () 42",
, 57",
54" . IO.SYS/MSDOS.SYS
MS-DOS.
, -
47" 42". :
+,- !".47" D !"
%BG 42" ; 16" ;HIJ ()
-
7/26/2019 Assembler Eto Prosto
28/328
I. : 22
,
!$ , .
(\002\prog02.asm)
, K3LJ> BAT- (-
2.5).
2.5.
E74M N @CO+CBG
E75M ,PO 477"
E7/M JG!PGQ
E71M
E70M +,- !".:
E72M +,- #$.,RR@CG JGP%BO
E78M %BG 54"E79M
E7:M +,- !".47"
E47M %BG 42"
E44M
E45M %BG 57"
E4/M
(14) String db ' ...$'
E40M N CB#@
E42M CB# JG!PG
(01), (02) (15) . (05)(07),
, . ( (09), (10)) -
. , (12)
.
%B*, #C*, !## @A). -
( ) . , :
FFF+,- !".76"
%B* !"
%BG 42"
FFF
.
* * *
3 ,
. .
-
7/26/2019 Assembler Eto Prosto
29/328
3
-
. -
,
. , - . ,
. ,
. - !
. -
, , . 4,
.
,
. : CodeView (CV.EXE)
AFD Pro (AFD.EXE). , prog03.asm. , prog03.com. , -
CodeView/AFD,
MS-DOS :
!"#$%$ '()*+,#-).
:
/01#$%$ '()*+,#-).
, !
3.1. .
, . , -
, , ""?
( ).
, , (
). .
, :
0000( ), 0001,
0010 (.. , 1).
-
7/26/2019 Assembler Eto Prosto
30/328
I. : 24
: 0011
0100
0101
0110
+222 1000
1001
..
"" "" . , -
, 0 1, .. -
("0" "1" ).
, , ,
, : 0001 ;
0010 ; 0100 ; 1000 .. . 0 9,
( ; : -
1010, 1011, ..., 1111).
. -
(, , , .) -
. "" 256 ( 0 255)
. , (09),
(az, AZ), (, ) . (.3).
(255) 8 . 8 . ,
1 (.3.1).
3.1. "Z"
0 1 0 1 1 0 1 0
"" "" "" "" -.
.
, , "", -
. , 1 .
,
. ""
314 , , 1001101 -. , "" 4 4 8 = 32 .
, ()
, "" "".
-
7/26/2019 Assembler Eto Prosto
31/328
3. 25
" , (, -
, ), "-"?" .
, , -
( ) (),
. , , , -
.
b.
, -
, . : 10
, 10h , 10b . ,
, . :###
.)5 6789+
.)5 :482+2++:
.)5 -;8234###
67, :4 -; , -
, .
( :4).
, . -
( ) : 10101110 10010010 01111010
11100101 (, ; ). -
. , .. .
, . , . . - , "".
, - , ! -
.
3.1.1.
, ,
.
, 20. :10100b.
, , 4 0.
:
10100b = 24+ 0 + 2
2+ 0 + 0 = 16 + 8 = 20
10100b = 1 16 + 0 8 + 1 4 + 0 2 + 0 1 = 16 + 0 + 4 + 0 + 0 = 20.
3.1.2.
, :
20/2 = 10, 0;
10/2 = 5, 0;
-
7/26/2019 Assembler Eto Prosto
32/328
I. : 26
5/2 = 2, 1;
2/2 = 1, 0;
1/2 = 0, 1.
: 10100b = 20.
3.1.3.
-
, 16:
8Ah = 8 16 + 10 (0Ah) = 138.
, -
. , -
Windows. DOS
Navigator. , , , , .
!
3.2.
: " ".
, "" "" -
, ... . , -
. , -
3.1 ( "_" ).
3.1
++++< _
++2+< _
++9+<
++,+, ?>, >>, @>(..2.1.3),
( ):
-> (code segment-
); ?> (data segment );
>> (stack segment );
@> , -
(, ).
@>
-
7/26/2019 Assembler Eto Prosto
34/328
I. : 28
2++4
, ( ,
). , , -
, . -> A'!
. AFD
, CodeView , , ;
- + +. , -
(.3.2):
67= +L++4 (, 64 F +L4, 6; F +, .. .)5 648L
9 64
, 6;
. 6;
, ,2=4
,
67 +L2=4);
A'= 2+94 (.. ). -
, .)5 648L 2 : 102h100h = 2.
-
7/26/2019 Assembler Eto Prosto
35/328
3. 29
.3.1. 3.1 AFD Pro
.3.2. .)5 648L
( /) ?7
A'. ?7 SP@>J .@>>6*@QS
, .. 2+L4, A' 2+=4( ). -
, .)5 ?78)MM>@J GJ(AI* 3 (105h102h = 3) (.3.3).
, :
.)5 ?78)MM>@J GJ(AI*
:
.)5 ?782+L T2+L , !)?@"A@U
; O4' . .
-
7/26/2019 Assembler Eto Prosto
36/328
I. : 30
.3.3. .)5 ?78+2+L
? , , -
- (MASM/TASM) )MM>@J GJ(AI*
GJ(AI* ( ). , , :
.)5 ?782+L4
.
. , (07), 3.1:
###
B+EC AIJ 9+4
B+NC AIJ 9+4
B+LC GJ(AI* ?: OP@>J .@>>6*@QO
B2+C !G$H @I?>
B22C @I? K>J6(J
AIJ 9+4 (, ,
(07)). .
. -
CodeView, , .. -
, ,
. , -
, +/+L4. ,
?7. , ?7-
109h, . , .
, CodeView.
Memory() CodeView ( AFD ) -
(.3.2 .3.4).
-
7/26/2019 Assembler Eto Prosto
37/328
3. 31
3.2. CodeView
1 2 3 4
+/+L < ++++ !1 9+ 00 L0 ++ L/ 0+ 0$ = .
: 1 (+/+L) , (
);
2 (++++) ( -
(:));
3 (!1 9+ 00 ### 0+ 0$) ,
, +/+LJ
.@>>6*@Q, 3 P@>J .@>>6*@Q
... ?7 (.3.5)! ,
() !
, ?7 !G$H( (01) (09) -
3.1). : AIJ 924. -
DOS L(.)5 648L) ?7(.)5 ?78)MM>@J GJ(AI*). , 64-
. ( -
-
7/26/2019 Assembler Eto Prosto
38/328
I. : 32
), ,
.
.3.5. P@>J .@>>6*@Q
3.3.
+L4 924 ,
?7. .3.3.
.
,
, .
3.1.
3.3. !"# $%#
64 F +L4
?7= ASCII- , Q
3.3.1. ASCII?
, , ASCII-, ASCII-
. ASCII- 0 255 DOS, -
, , . (
ASCII- . 3).
-
7/26/2019 Assembler Eto Prosto
39/328
3. 33
.
- , . -
, . , -
.
3.4. (\003\prog03.asm) ,
(3.2).
3.2.
B+2C !G$H >@*.@IJ
B+9C )(* 2++4
B+,C K:@*867
B+DC .)5 ?A8+
B+EC
B+NC .)5 648,2
B+LC .)5 6;82
B2+C .)5 @>
B2NC @I? K:@*
. .
(. 3.6),
.
, .. . (04)
(05) @> +VN++4,
( !). (06)
?A. +VN++4. (08)
(09) 64 (31-
) 6;ASCII- (01 "").
(10) +VN++
-
7/26/2019 Assembler Eto Prosto
40/328
I. : 34
). .)5 (10). -
W X , ,
, ( , -
, +VN++, , -, ?>. -
.
.
. - . (10) 35 .
, Pentium 100 20 (!) - !
3.5.
! I.
, . :
;
; Intel 8086/8088/80186;
;
:
)(* ;
.)5 ();
6??;
>Y:;
AI- ;
AIJ ;
-
7/26/2019 Assembler Eto Prosto
41/328
3. 35
+L4 924( -
);
2+4 2D4( ).
, ,
. 75% ,
, , , . , - , , -
. ,
I. - , , ,
. !
,
II " ".
!
-
7/26/2019 Assembler Eto Prosto
42/328
II
-
7/26/2019 Assembler Eto Prosto
43/328
4
4.1.
3.1. - -
:!"#$ &&&
!"'$ ()* +,-.
!"/$ ()* 01-)22345 678359:;$ &&&
(06) My_string db '!$'
!"?$ &&&
(03) 01 . : ()* 01-)22345 678359:;
-
7/26/2019 Assembler Eto Prosto
44/328
II. 40
. , 8-
(0C), D754. 16- (01) A)90.
-, .
, -
. .
"!$" 03() 01(). 03? ,
COM- ( ), -
, ,
( 03). 03
( ). COM ,
, . COM-
64 (65536 ). , "" ,
, 64 .
. -
Norton Commander (
III).
36 . ,
Norton Commander ( Norton Commander
).
Volcov Commander .
Norton Commander, 64000 (
Norton). Volcov Commander "" , . Volcov , Norton.
.
'#, 03 . , :&&&
()* 01-)22345 678359:;$ :;5 '#,
!"R$ C))B Q+D4C8#
&&&
, -
. , ,
.
, . .4.2 , -
4.3.
, , Q+D4C8#, .4.1,
, , C))B, -
:;5 '#,. , . -
, -
.
, . , #",-
#R,, +1 , -
, 4.3.
-
7/26/2019 Assembler Eto Prosto
48/328
II. 44
.4.2.
4.3.
-
, . -
C))B,
, @1 . @1- , -
, .. .
,
, - .
.
.4.3 , .
4.3. )*(
S(B Jump ( )
8086
S(B
(4.4).
4.4.
&&&
!"#$ ()* +,-.
!"'$ ()* 01-)22345 O59
-
7/26/2019 Assembler Eto Prosto
49/328
4. 45
!"/$ :;5 '#,
!"=$ S(B Q+D4C8'
!">$
!"R$ +00 @1-#'
!"?$ 04@ @1
!"T$ Q+D4C8'J!".$ :;5 '",
&&&
(05)(07) . -
, S(B
(08), .
4.3.1.
04@ , -
, C))B. 4.5
, 4.2, - (
).
4.5.
&&&
!"#$ ()* @1-/
!"'$ Q+D4C8#J
!"/$ ()* +,-.
!"=$ ()* 01-)22345 O59
!">$ :;5 '#,
!"R$ 04@ @1
!"?$ S;U Q+D4C8#
&&&
(07). . , ,
(, ).
, -
. ,
, .
.
4.4. 3,
"" ( 4.6, \004\prog04.asm).
-
7/26/2019 Assembler Eto Prosto
50/328
II. 46
4.6.
!"#$ LOVW 34
-
7/26/2019 Assembler Eto Prosto
51/328
5
5.1.
, , TASM, -
. TASM :
!"#$ &'() *$ +#,, -* ./00"$"1- 23
2
#44'(" +452367, TASM -
.
?
, #44'(" , -
+4 2367. .
MASM . #44'(" -, MASM
.
TASM. , :
,**) 8#9",:;
&() 8#9",:367, (link.exe), COM-
( COM-!), . ,
:
#44'(" +452367? .452367? "452367? 4452367
"" , +4,.4, "4, 44
2367. , - , , ,
. .
-
7/26/2019 Assembler Eto Prosto
52/328
II. 48
5.2.
-
.
I.
., , -
" ...", ,
: " !", ,
, .
? @AB
-
7/26/2019 Assembler Eto Prosto
53/328
5. 49
, , , +#,,(.5.1) (5.2).
5.1. !"##
+#,, Call 8086
5.2. !"##
DDD
E@;F (*G .H?*004"- I"44;
E@
-
7/26/2019 Assembler Eto Prosto
54/328
II. 50
, ? , .
.
(01) .H I"44;. (02) -
, O'-:4-$/1P.
?
() ( (03)) O'-:4-$/1P
( (08)). .H , ..
I"44;(.5.1).
(09), (10) @AB
-
7/26/2019 Assembler Eto Prosto
55/328
5. 51
, , : " ( , -
) , , -
?" , .
, .. .
, (stack).
. 6 , ,
4454), .
, (
(03)) . ,
:
O'-:4-$/1P )$*+
DDD
O'-:4-$/1P "1.)
: O'-:4-$/1P ;
)$*+(procedure);
"1.)(endprocedure).
, . -
. ,
, ""!
.
5.3. 4, -
(\005\prog05.asm).
5.3.
5.3.
E@;F 2367 4"P("1-
E@
-
7/26/2019 Assembler Eto Prosto
56/328
II. 52
E;
-
7/26/2019 Assembler Eto Prosto
57/328
5. 53
80 25). (20) +H. -
+H( (25)) (26).
, : .
254, 2000. : 2000 254 = 508 000. -
, , , -
. - . ,
.
-
. AFD.
5.4. AFD
AFD, ,
: 32- ;
808680186 ,
8087;
PE NE (Windows).
:
;
, , .;
.
DOS , . -
AFD http://www.Kalashnikoff.ru, -
64 .
, , , !
-
7/26/2019 Assembler Eto Prosto
58/328
6
6.1.
(, stack)
() .
, . , "" :
!!!!
!!!#
!!!$
%%%
&&&'
&&&&
. , , ,
()*, +,-- .. .
!&&&&., ()!!!!.. - -
+,--, +,---
. ,
, .
//0/*. , , -
, - COM- /* !&&&'.,
//, , - 12'3(, , +/,4/,5/).
. -
. 6.1 .
6.1.
12'3 /56)578
,//9)5 +/012'3: 4/012'3: 5/012'3: //012'3
;70
+,-- ?9
-
7/26/2019 Assembler Eto Prosto
59/328
6. 55
>78 $!.
?978 $!.. , - +,-- ?9
-
7/26/2019 Assembler Eto Prosto
60/328
II. 56
.6.2.
.6.3. .
, , (.6.1 6.2).
6.1. !"#$
*9/. Push 8086
6.2. !%!
*;* Pop 8086
-
7/26/2019 Assembler Eto Prosto
61/328
6. 57
, . ,
, . (6.2).
6.2.
%%%
D!#E );F ,G:CHI.
D!$E *9/. ,G
D!CE );F ,.:#!.
D!HE >78 #J.
D!IE *;* ,G
%%%
,G 345h (01), (02),
(03), (04). #!. #J. ,G -, .. ,G , .
, (05), -
345h ,G. ,G
345h, , , . -
. , : ,G,
=G, +G:%%%
*9/. ,G
*9/. =G
*9/. +G
%%%
, :%%%
*;* +G
*;* =G
*;* ,G
%%% ,
, . :%%%
);F ,G:#$CH.
);F =G:IJKL.
*9/. ,G
*9/. =G
*;* ,G
*;* =G
%%%
-
7/26/2019 Assembler Eto Prosto
62/328
II. 58
.6.4.
,G 5678h, =G1234h (.6.4).
-
(6.3).
6.3.
%%%+,-- ?9
-
7/26/2019 Assembler Eto Prosto
63/328
6. 59
.6.5.
.6.6.
( ) //0/*(-
: ). , ,
, // /*
, .
+-> /8>(.6.3 6.4).
6.3. &'(
+-> Clear interrupt -
8086
-
7/26/2019 Assembler Eto Prosto
64/328
II. 60
6.4. #)(
/8> Restore interrupt 8086
, "" ! -
. +-> /8>.
.
? , .. -
. -
, .
. , -
18,2 . - -! , , , .
, , , ?-
, . -
, , ,
,
(, , /
/). , , -
, -
, " " , - . . -
, , -
:%%%
D!#E );F ,G:#!!.
D!$E );F //:,G
D!CE );F /*:$!!.
%%%
, , -
(02). // 100h, /*
200h. , ,
, , , , /*B!&&&'.. ,
//B#!!., /*B!&&&'.. .
. -
//B#!!., /*B$!!.! , -
. , !#!!.0!&&&'. (
). ? , , "". :
//0/*, -
+->, , ,
-
7/26/2019 Assembler Eto Prosto
65/328
6. 61
/8>. (Pentium) -
, .. .
, ,
"";
//0/* .
, ; , . ,
COM- , // ,
, /* B !&&&'.. #!!.(;
%%%
, , : " //0/*?"
,
, ,
( , ),
, .
6.2.
6.2.1. nop
, (.6.5).
6.5. *%!
O;* No operand 8086
-
7/26/2019 Assembler Eto Prosto
66/328
-
7/26/2019 Assembler Eto Prosto
67/328
6. 63
, " ". , - -
/*, . (09)(12)
. ! .
, CodeView, TurboDebuger, AFD - "":
, " ", -
>78 $!. (.6.7). DOS, -
, .. ,
(. 6.8)! " "
. !
? :
(.. , ).
" " .
?
?
? . . -
, -
. ! ,
! !
.6.7.
.6.8.
-
7/26/2019 Assembler Eto Prosto
68/328
7
7.1. 6
. , 7.1
.
7.1. 6
!!!
#$%& !"# %&'"((%)* +,-./
#$'& ()* +,-.$.$/
#$0& &0%1 ,2
#$1& 234 '$/
#$5& 6+78%9
#$:& ()* +/-.
#$;& ()* ?4 @?>>
#$A& 234 '%/
#$.& 234 '$/
!!!
- ? 6, 3)B .$/.
(02). +, .$/ (
3)B). >B 6+78%(01).
, , , 6+78%. ,
! MASM/TASM, ,
(05), () ( %$./).
(01) , >B,
, . , %$./
()* +/-$., .. 6+78% .
! (03) "" .$/, .. -
3)B. ? , , "" .
-
7/26/2019 Assembler Eto Prosto
69/328
7. 65
>B , , -
.7.1. 234 '$/ 2.
Hacker's View. 234 '$/ $CD/- '$/.
, "" COM- .
, (,
Volcov Commander), CD '$.
COM (, prog.com). 2. -
COM-.
.7.1. AFD Pro
, 234 '$/ 2. BE>/ +,(03)
.$/, 3)B.
>B 234 '$/, -
3)B. ! 234 '$/( )
3)B, ! -
. .7.1 . , -
" ".
.
, CodeView, AFD, Turbo Debugger -
. :
. , ,
, (
>>9>B), . - -
. , , . , ,
! ,
-
7/26/2019 Assembler Eto Prosto
70/328
II. 66
, , , ,
. ,
, , ..
. , " ", -
, .
7.2.
%$/ %:/,
. -
, .
+,.
? F(B(.7.1
7.2).
7.1. !"#
F(B - Compare 8086
7.2. 3!&
!!!#$%& ()* +/-%$/
#$'& 234 %:/
#$0& F(B +G-HIH
#$1& JK I?>8L?M
!!!
#$5& I?>8L?M9
!!!
(02) , -
- . %$/ +,
, . (03) ,
. :F(B +G-HIH
ASCII- . -
.
MASM/TASM . -
, , F(B +G-HIH
F(B +G-5./
-
7/26/2019 Assembler Eto Prosto
71/328
7. 67
! , F(B
+G-5./. .
, , ,
, (7.3).
7.3.
!!!
()* +G-H'H
()*
-
7/26/2019 Assembler Eto Prosto
72/328
II. 68
7.5 NEO8G+7, ..
F(B +,-%: . ()* +/-0,
, , .
, , - -
. , . -
, . , ! 7.6 .
7.6.
!!!
P?,48L?M9
()* +/-%$/
234 %:/
cmp al,''JK Q8BO?>>?>?>?>234 '%/
234 '$/
Mess db ' !!!$'
!!!
, JK J?( .jump if equal,
) .
7.6 , 7.7.
7.7. 4) 45
!!!
234 %:/
cmp al,''
J? Q8BO?>>?/ +,
BE>/ ?>
BE>/ +,
()* +,-$VA$$/
()* ?>-+,
()*
-
7/26/2019 Assembler Eto Prosto
77/328
-
7/26/2019 Assembler Eto Prosto
78/328
8
8.1.
, 7 . ,
, -. - -
, . :
20h32, ;
100h256, ;
1Bh27, ;
21h33, MS-DOS
..
(8.1).
8.1. 7
!!!
(01) call Wait_key ; ...
#$%& '() *+,27 ; ..)#$A& :; B;72C ; ...
;
#$D& '*++ E134'F*5
#$G& :() B;72C ; ...
;,
-
7/26/2019 Assembler Eto Prosto
79/328
8. 75
; .
#>$& '*++ E134'F*5
#>>& 2C3 %$F ; LEM!!!
#>%& !!!
#>9& N ??? E134'F*5 ??? ; ()
#>
-
7/26/2019 Assembler Eto Prosto
80/328
II. 76
(12) -
. , :
;
ASCII(, ), -
;
ASCII (, ..) - ;
(%G >BF),
((6K *+P9%) .
8.2.
MS-DOS
.
, . 9LF %>F(.8.1).
8.1. !"# $%#
*F V 9LF
*+= (00 , 01
, 02 , )
Q-IQO= ASCII-
*O=
:'
, *+ , .. ,
:
;
;
.
, (*+V$%)
, - . / - - , . ,
" " ("read-only")
(*+V%) / (*+V$%), .
8.2 command.com -
/.
8.2. /
!!!(6K *OP9L$%F
(6K QOP6WW-;3 =2+;4C*(;
-
7/26/2019 Assembler Eto Prosto
81/328
8. 77
2C3 %>F
!!!
=2+;4C*(; QX Y'6((*CQ!'6(YP$
!!!
, *O : 9LF $%F.
, -
:!!!
(6K *FP9LF
(6K *+P$%F
!!!
=2+;4C*(; QX Y'6((*CQ!'6(YP$ ,
. , - :!!!
(6K *OP9L$%F
(6K QOP6WW-;3 =2+;4C*(;
=2+;4C*(; QX Y'6((*CQ!'6(YP$
2C3 %>F
!!!
, (6K QOP6WW-;3 =2+;4C*(; =2+;4C*(; QX ''6((*CQ!'6(' . , -
, .
Y'6((*CQ!'6(Y , . , -
, (.8.1). (6K QOP$>$DF((6K
QOP6WW-;3 =2+;4C*(;) =2+;4C*(;
Z'6((*CQ!'6(Z. QO ,
*)5+, 2C-[ .., , ,
"" .
, " " . , .
, -
, .
.
, :
=2+;4C*(; QX Y\I]^MM_]'6((*CQ!'6(YP$
, -
.
, - .
. :
_S4W2+; QX Y*I(SW2+;!Q6'YP$
-
7/26/2019 Assembler Eto Prosto
82/328
II. 78
.8.1.
myfile.doc,
A: .
, . :!!!
(6K *OP9L$$F
(6K QOP6WW-;3 `1-34W2+;
2C3 %>F
!!!
`1-34W2+; QX YW2+;YP$
!!!
, file (. -
) . 9LF -
( ).
- , (
).
:' ( .
jumpifcarry, ) :C'( .jumpifnot
carry, ):!!!
2C3 %>F
:' ,5565
EaI
!!!
,5565I
!!!
-
7/26/2019 Assembler Eto Prosto
83/328
-
7/26/2019 Assembler Eto Prosto
84/328
II. 80
:() 01234)567
!!!
=2+;4C*(; QX Y'I]*--(](*-(]X2C5](+!;O;YP$
Mess1 db ' !$'
Mess2 db ' !$'!!!
.8.2.
*O -
. , , -
, . .
9LF , *O!
.8.2.
(
-), 9,F %>F(.8.2).
8.2. ! $%#
*F V 9,F
XO=
, ,
. , -
. ,
.
-
7/26/2019 Assembler Eto Prosto
85/328
8. 81
! , -
, -
, ,
(.. ,
-, ). ,
, e*CQ+;:!!!
(6K *FP9,F
(6K XOPe*CQ+;
2C3 %>F ;
!!!
(6K XOPe*CQ+;. e*CQ+; ,
.
, ,
e*CQ+;. :e*CQ+; Q[ $
. -
. 8.4 ,
, ,
.
8.4.
!!!
(6K *OP9L$$F
(6K QOP6WW-;3 =2+;4C*(;
2C3 %>F
:' ,5565
(6K e*CQ+;P*O
; ...
(6K *FP9,F
(6K XOP e*CQ+;2C3 %>F
N
,5565I
2C3 %$F
!!!
e*CQ+; Q[ $
!!!
9=F,
-
7/26/2019 Assembler Eto Prosto
86/328
II. 82
'O , Q-IQO
/.
-
7/26/2019 Assembler Eto Prosto
87/328
8. 83
:() E134)567
;=== ===
e*CQ+; Q[ $
Mess_ok db ' ! !$'
_;--4;5565 QX ' '
; :
=2+;4C*(; QX Y'I](-Q6-!-S-YP$PYghY
B1WW;5 ;81 h
\M,f ;CQ-
;CQ B;72C
. , , , .
() , -
Q-IQO.
-
7/26/2019 Assembler Eto Prosto
88/328
9
9.1.
9.1 8 .
9.1. 8
!!!
; .
#$%& '()*+, -./ 01234$$5 ;
; , ( ).
#$6& -./ 712.889(: ;*79,71
#$3& *+: 6%5 ;
#$?& @A BCC.C=8*
-
7/26/2019 Assembler Eto Prosto
89/328
9. 85
; b. .. D1 ,
; (E0+7
-
7/26/2019 Assembler Eto Prosto
90/328
II. 86
#$I& -./ 712.889(: LS=
-
7/26/2019 Assembler Eto Prosto
91/328
9. 87
.9.2.
Q$Q A,R-97.9!9S9 .
Q$Q (23)? 79,71
. Q$Q. , , , . -
c:\msdos.sys!$ !
, . :
Mess_eo db ' () c:R-97.9!9S9TUQ
;* [[[[[[[[[[[[[[ [[[[[[[[[[[[[
'()*+,
-./ 712.889(: ;*
-
7/26/2019 Assembler Eto Prosto
92/328
II. 88
> [[[[[[[[[[[[[[ [[[[[[[[[[[
-./ D1201
-./ 0523;5
-./ A12.889(: ;*+*95[%$$5
-./ 712.889(: '()*+*+: 6%5
> [[[[[[[[[[[[[ [[[[[[[[[[[[[[[[
A0
-
7/26/2019 Assembler Eto Prosto
93/328
9. 89
-./ D12E0+7
-
7/26/2019 Assembler Eto Prosto
94/328
II I
,,
-
7/26/2019 Assembler Eto Prosto
95/328
10
.
10.1.
9 (
) . Prog09.asm. , -
, . . -
, -
, .
(10.1).
10.1. Prog09.asm 9
; , "
#$%& '()*(+,
-''.*( #$/#$%&0 1$/#$%&0 %$/#$%&0 $$/#$%&
23) 4556
7()8+/
; (.).
*29 :;02> #>2'(?( ;
-
7/26/2019 Assembler Eto Prosto
96/328
-
7/26/2019 Assembler Eto Prosto
97/328
10. . 95
H(''?2I :B ' !',0Q605160PRP
iis e $ ; ()
#$%& (+:'
(+: 7()8+
.10.1 CodeView , -
. -
:'/:;, C=6,
.
.10.1.
3(,
:DDD
*29 -60G
*29 :;02
-
7/26/2019 Assembler Eto Prosto
98/328
III. , , 96
.10.2. 3(,
.10.3. 8+, F56 DOS
, , , COM- -
, .. 'LS5===%6. -
" call" 'L 2, ..
5===#6. , -
. : -
DOS . , DOS
3(, COM- , 'LS5===%6, -
2 55556(.. 8+, F56)
, .
-
7/26/2019 Assembler Eto Prosto
99/328
10. . 97
10.2.
, , Pascal, , Visual
Basic . -
, , .
. - . , -
"" .
.. " ", ,
( -
, -).
,
.
?
, , - , , - .
: X Y. , Y ? - " ", - - ? X, . ! , Y, ( - ; , ..).
, . , , - . ? Yandex., -
, .. - .
, - .
, , Visual Basic for Applications (VBA).
. ,
, . "" -
, .
, (DrWeb, NOD32, Norton Antivirus, -
.). ,
. , , ,
, . -
(!) , .
-
7/26/2019 Assembler Eto Prosto
100/328
III. , , 98
10.2.1.
?
, -
. , , -
. , , . -
.
?
, , -
/, , . -
500600 . ,
100150 , , 1,53 -
.
?
, . , 0,5
1 FDISK, ..
, (FAT File Allocation
Table), ! -
.
? , COM- (-
).
?
, .
?
, COM-, (10.2).
10.2.
#$%& '()*(+,
-''.*( A'/#$%&0 :'/#$%&0 ('/#$%&0 ''/#$%&
23) 4556
$,-3,/
DDD ; .
#$%& (+:'
(+: $,-3,
-
7/26/2019 Assembler Eto Prosto
101/328
10. . 99
COM-, .
EXE-, .
.
10.3. , . -
. , .
!
, , API-. , , FAR Manager. , DOS Navigator.
(), . , Norton Guide, -
, , -
. , -
( DOS ).
, -
, , .
(
).
10.3.1.
(), -
(, print_string), . 256. -
BIOS () . , 4T6:DDD
*29 -60456
8+, 4T6
DDD
(MS-DOS):DDD
*29 -60G
*29 :;02
-
7/26/2019 Assembler Eto Prosto
102/328
III. , , 100
*29 :;02
-
7/26/2019 Assembler Eto Prosto
103/328
-
7/26/2019 Assembler Eto Prosto
104/328
-
7/26/2019 Assembler Eto Prosto
105/328
10. . 103
V+,?F46?9(A, :: W
My_sti db ' !$'
8+,?F46?L32A (+:L
; (
"). ( 27)
V+8,/
; (t_21_oc) ( )
" 21. 25 21.
; .
; 356 216/
;a
*29 -60CZ6
;al , ( )
*29 ->0F46
8+, F46
; ('/B; () 216 [(', B;)
;
*29 O23: L,3 V+,?F46?9(A,0B;
*29 O23: L,3 V+,?F46?9(A,\F0('
;, . /
*29 -;0FZF46
*29 :;02
-
7/26/2019 Assembler Eto Prosto
106/328
III. , , 104
10.4.1.
,
(.10.110.3).
10.1. "#$ %&$: ()
-6 S CZ6 ('=
B;=
10.2. %#$ %&$:
-6 SFZ6
:'=
:;=
10.3. %'$:
:'/:;= , ( DOS)
10.5.
(.10.4 10.5).
10.4.()*$+
L.'6< Push flags 8086
10.5.(,(+
L2L< Pop flags 8086
:DDD
[54] A*L -;0FC
[5F] @( KI?-;
DDD
, (01), .
(02) . , ,
-
7/26/2019 Assembler Eto Prosto
107/328
10. . 105
(.. -; S FC). , -; 23. -
, AFD Code View (
, )
(.10.4 10.5).
.10.4.AFD: ^=(Zero Flag)
.10.5.Code View: ^_(ZeRo)
V+,?F46?L32A -
10.4. :
DDDA*L -60G
@( KI?5G
DDD
-
7/26/2019 Assembler Eto Prosto
108/328
III. , , 106
.
. ,
( )
A'/8L, . ,
83(,
. , ,
. - -
, F46. , -
, :' :;. ,
( V+,?F46?L32A) -
, A'/8L .
:
; 21
V+,?F46?9(A, :: W
(Define Double word-
). , 16- -
2 ( ) (:;, -;, (', '' .., -6, :>, B6, ...
8- , 1). -
V+,?F46?9(A, (2), -
:
*291+*2 )'*V+,?F46?9(A,0-;
1, :*2934'5 )'*V+,?F46?9(A,0-6
, "word" - "", byte"".
10.5.1. ?
,
"" F46. , AFD, TD, SoftIce ., CodeView.
AFD, http://www.Kalashnikoff.ru.
, 5G6 F46. , , -
10.5 (\010\test10.asm).
10.5.
#$%& '()*(+,
-''.*( #$/#$%&0 1$/#$%&0 %$/#$%&0 $$/#$%&
23) 4556
7()8+/
*29 -60G
*29 :;02
-
7/26/2019 Assembler Eto Prosto
109/328
-
7/26/2019 Assembler Eto Prosto
110/328
III. , , 108
.10.7.
, 83(, -
test10.com, 8+, F46.
F46 -
. , ,
, .
* * *
11 Norton Commander.
-
7/26/2019 Assembler Eto Prosto
111/328
11
, - , ,
, . , -
, . :
print ""
, , . - , , -
. , ,
, , -
, . -
, ,
, ? , -
, , -
.
, ,
, .. .
11.1.
: -
Norton Commander (Windows Commander, FAR Manager ..) -
XMS-.
, ,
. , ,
, , 808680486 , ,
, XMS-, .
(, ), -
, , Norton Commander.
, .
. ?
, -
300 .
, ,
"" FAR Manager, . ,
, .
-
7/26/2019 Assembler Eto Prosto
112/328
III. , , 110
,
COM- (.. 64).
" ?" . .
Volcov Commander, COM 64 .
, , ,
. .
, (11.1).
11.1. ""
"#$% &'()'*+
,&&-)' .&/"#$%0 1&/"#$%0 '&/"#$%0 &&/"#$%
23( 4556
7'(8*9&6'::/
;
.,:: "6'.;9
-
7/26/2019 Assembler Eto Prosto
113/328
11. 111
; , :
"#$%&'( )(,,*4(,+*,)
; . ...
"#$% '*1&
7'(8*9&6':: '*1D
Sshell11.asm ( . ).
, , Sshell Super shell
( ), ,
( 11).
(): 8*.:-1'.
- (MASM/TASM): -
. 8*.:-1' , -
. .
? , -
( ), ( -
, ): main.asm, display.asm,files.asm, keyboard.asm, messages.asm.
?
(Far Manager, Norton Commander . .)
+. ( ). - , . .
- -
DOS-, c
http://www.Kalashnikoff.ru/.
, . . -
, Sshell11.asm. . -
.
! main.asm, display.asm, files.asm, keyboard.asm,messages.asm. ! ( MASM 6.11):
AEF$G$ #&6'::44F,&) HIJ
( TASM):
JI#AF$G$ #&6'::44F,&)
JEKLMF$G$ #&6'::44F2BN H+ H?
. 1.
Sshell11.com. , -
. ASM.
, ..
-
7/26/2019 Assembler Eto Prosto
114/328
III. , , 112
11.2.
456
BIOS () (.11.1).
11.1. !"# $!#:
,6 O 5P6 ,:=
,6=
B6=
: . , . -
, 40 25, 80 25 (
, , Norton Commander), -
(CGA) ( Digger), .
.11.2 .
11.2.
/
/
CGA+
01h , 16 40 25
03h , 16 80 25
04h , 4 320 200
06h , 2 640 200
VGA+
11h , 2 640 480
12h , 16 640 480
13h , 256 320 200
sVGA
(, 1024 768, 64 ).
, ( ) VBE (
, ). -
CGA-, EGA-
helpassm.exe, http://www.Kalashnikoff.ru/.
-
7/26/2019 Assembler Eto Prosto
115/328
11. 113
, -
CGA- EGA-.
. :FFF
)2< ,605P6
8*+ 456.)D ,:0Q
N' R;9
-
7/26/2019 Assembler Eto Prosto
116/328
III. , , 114
11.3. !%# $!#:
,6= 5S6
,:=
.
:
, ( ) ,
;
556 456
, ;
. , -
. , -, " -
", , .
.
.
* * *
. 12 -
.
-
7/26/2019 Assembler Eto Prosto
117/328
12
12.1.
.
- resid12.asm test12.asm. resid12.com , test12.com.
Resid12.com ,
ASCIZ (ASCII-, 0). !"#$%&'$()*+
%&'( BIOS ()). -
10. (,,')
%&', , ,
, , . -
,,', %&', -
(). :
-' / ,,' ;
01213 = , (01, 13).
, 01() ,
13(). , COM- -
+1, 01, 41, 11 ,
. . ,
, .
12.2.
, , . -
, -
. " "
.
- , . ? , "-
". %&', -5" " ,,66'.
, -
-
7/26/2019 Assembler Eto Prosto
118/328
III. , , 116
. , -' ,,', -766'. ,,'
%&' ( ).
99,9%. %&'
, %&'(-
, , ), . , -
%&' ,,66' -5 ,,66' -5,
, . .12.1 -
%&' .
.12.1. : !
%&'. resid12.com -
, %&', ,
, ,,66' -5. ,
- . ? -
-' -7 . ,
, , , , 66,,'. , ,
,,66' -5, BIOS , ..
. -5 66,,', , , -
. !"#$%&'$()*+ (
?). ,
-' -7(12.1).
12.1. !"# resid12.com
888
!"#$%&'$()*+ ()*+
-
7/26/2019 Assembler Eto Prosto
119/328
12. 117
(91': ; , .. ...
+;( -5
-
7/26/2019 Assembler Eto Prosto
120/328
-
7/26/2019 Assembler Eto Prosto
121/328
12. 119
; -7 '1' (31'NA 13 / 13 1, .. 13 '2'
7*01K
; a '32' (3332); si = si 2, si '5'
888
M#)3"@ 0D O%GHFEO
888
.12.3. 7*01D
.12.4. 7*01K
-
7/26/2019 Assembler Eto Prosto
122/328
III. , , 120
: 7*01D,
-7, 13 1. K, -
() -5, 13 .
:
1. 01?
2. 7*01K -5 '32', '23', ?
('32'), , 2 . 3, 2.
: M#)3"@
, ,
, .
. COM- -
.
.
, - -
. ,
, ( )
. 12.4 .
12.4.
888
P-"074 0K %GHF'
; 123'.
; : 312'. ...
888
;*C -5
-
7/26/2019 Assembler Eto Prosto
123/328
12. 121
.12.5. -5
.12.6. -7
.12.7. -7
-
7/26/2019 Assembler Eto Prosto
124/328
III. , , 122
12.5.
888
;*C -5
-
7/26/2019 Assembler Eto Prosto
125/328
-
7/26/2019 Assembler Eto Prosto
126/328
III. , , 124
, :
: : 888
. , -' -
, -7. , (..
-' () ), ,
. , -5 - !
)4(,
. , .
1#*1K, (12.8).
12.8. '((.
888
;*C -545#$1Q;2 ;
1#*1K
7**( >45#$1Q;
;
888
, :
1. 7**( )4( -
.
2. , )4(.
3. ( >45#$1Q;).
, )4(
(12.9).
12.9. /0.
888
;*C -5
-
7/26/2019 Assembler Eto Prosto
127/328
12. 125
, . .
IBM PC/XT. -
)4( 1#*1K 0.
!
)4(( . repeat) , 7**( !
:
1#*1K , -5
41203;
)4( 1#*1K , -5 41203
, ;
)4(, -
.
. -
, 13, 03.
12.4. xor sub
, -
: 5*) 19D -
(.12.9):
5*) -5
-
7/26/2019 Assembler Eto Prosto
128/328
III. , , 126
.12.10. 19D
(5*) -5
-
7/26/2019 Assembler Eto Prosto
129/328
-
7/26/2019 Assembler Eto Prosto
130/328
III. , , 128
(!)*+,"8")#-
-
7/26/2019 Assembler Eto Prosto
131/328
13. : 129
: DOS DTA
"-". : DTA
?
HELPASSM,
http://Kalashnikoff.ru. -
, . , COM- !""#(.?I !""#).
" !""#? PSP (Program Segment Prefix,
),
, .
6"# DTA(Disk Transfer Area,
). DTA
(+J# +B# )!#). ,
, (6"#)
. :
BKLMNO7PKM P,QRQS
@A,""6"# TCP,QRQS, T -
, C . ,
CodeView :
PU7JVJ BKLMNO P,QRQS
, @A,""6"#(.13.1).
.13.1. PSP
PSP? ,
, (TCP,QRQS). , "-
-", "", ,
-
7/26/2019 Assembler Eto Prosto
132/328
III. , , 130
. TCQRQS.
:
PSP . , -
, ;
DTA , . -
!N# )!#(.13.1).
13.1. !"# $!#: DTA
0#= !N#
3A,31= DTA
, .. -
DTA -.
: " ".
,
. :
%./ 312.WWAE; R;?9:I
31 R;?9:I .
:
%./ 312!)8# 31 . ,
() , 0.
- ,
! ,
, !
13.3
, .
13.3.
777
(!)*+,"!""#- %./ 312+""#
; , %./ 312.WWAE; R;?9:I7
; .WWAE; R;?9:I
; , .
777
23:000
; , 00#7
; , .
777
-
7/26/2019 Assembler Eto Prosto
133/328
13. : 131
, "-" 100h,
. , :
!)*+,"+""# X !""# Y !)*+,"8""#. ,
. 100, 23000 !
, , -
(13.4).
13.4. )%%(
777
;23:0200 , 00 "
-
7/26/2019 Assembler Eto Prosto
134/328
III. , , 132
: , , -
, ?
(. . , )
- 7- ( !). -
-
80 25 ( 03). , ,
. ,
( ).
.13.2.
13.2.
"Z6""# 00
"ZG""# 01
"ZN""# 02
"ZZ""# 03
"ZP""# 04
"Z[""# 05
"ZJ""# 06
"ZB""# 07
.
, ?
300400 . 03:
80 , 25. 2 (-
/). : 80 25 2 = 4000 (, 4096 -
). ? , ! ,
, , , .
H:9; -
. , .. . ,
...
-
: %./A.
13.3. movs
%./A . -
, .
A;.A, .
.13.3.
-
7/26/2019 Assembler Eto Prosto
135/328
13. : 133
13.3. %&'(
%./A Move string
()
8086
3A,A9 , , EA,39 -
, @1 / (13.7, 13.8
.13.2, 13.3).
13.7. "012
777
%./ @1,0 ;
%./ A92.WWAE; R;? ;
%./ 392.WWAE; R;?2 ;
?E& %./A5 ; , .. %./A57
; tr tr2
777
R;?! 35 \"!)*+84=6G\
R;?) 35 \G6=48+*)!"\
777
.13.2.
-
7/26/2019 Assembler Eto Prosto
136/328
III. , , 134
13.8. "012
777
%./ @128 ;
%./ A92.WWAE; R;?! ;
%./ 392.WWAE; R;?) ; ?E& %./A> ; , .. %./A>7
; tr tr2
777
R;?! 35 \"!)*+84=6G\
R;?) 35 \G6=48+*)!"\
777
.13.3. %./A
13.4. ,
, :
"-";
7- ("ZB"","!""#).
"" "ZB"",9&. , @A,9& -
( ). ,
"":
$%& 3>.?3 &;? @A,(KWWC%./E-
-
7/26/2019 Assembler Eto Prosto
137/328
13. : 135
, KWWC%./E, -
, @A,9&.
, , T05C$%&, -
7- . .13.4 AFD
virus13.com .
.13.4.Virus13.com
13.5.
DTA 7- 0. -
. -
COM . -
+J# )!#(.13.4).
13.4. )*# $!#: /
0# Y +J#
@1= : 0
(, read-only hidden!)
3A,31= .
:
]7]
]7E1E
@.%%^^^7@^^
@,_]70A%
@W Y !: ( )
@W Y ": DTA
-
7/26/2019 Assembler Eto Prosto
138/328
III. , , 136
@W . @WY!, ,
( 1), @WY", ( 0). -
DOS, , .
, +J# , , ,
( ), .
( ), DTA . - . @WY" ( ), -
- .
,
( ), +B# )!#
(.13.5).
13.5. )+# $!#:
/
0# Y +B#
@1= : 0
(, read-only hidden!)
3A,31= ( +J#)
@W Y !: , -
( )
@W Y ": DTA
, +B# )!# +J#.
, . ! .
.
.
! - ,
.
-
7/26/2019 Assembler Eto Prosto
139/328
14
- , , -
. , , .
. -, !
, - . .
, :
.
.
sshell14.asm!
.
, -
,
, . : "...
(!"#"$"%&'#", files.asm)...".
!"#"$"%&'#" , , files.asm ,
.
14.1.
14.1.1. COM?
, Windows (FLAT)
COM-, (TINY).
14.1.2.
?
. :
TINY"" , , -
, 16- (..
-
7/26/2019 Assembler Eto Prosto
140/328
III. , , 138
64).
COM,
(, ). -
;
SMALL "" , , -
; COMPACT "" ,
, . -
;
MEDIUM "" , ,
. , ,
, ( , ..)
, ;
LARGE HUGE"" "" , ,
; FLAT "" , , -
( TINY), 32- .
, 4294 967 296 (
4 ). , , , -
Windows.
()*+"#. 14.1 -
COM .
14.1. !"#$%&
; , (-./01(
; 344567 .
()*+"# -./0
897: 9";)":) .
*?; @AAB
C";'
-
7/26/2019 Assembler Eto Prosto
141/328
14. 139
14.2. SuperShell
14.2.1.
main.asm. (M'+"%8S?9*?,
display.asm). , . ATB @AB(.14.1).
14.1. !"# $!#:
FB= 3
KB= ,
+I= (+B-, +#)
, KB ,
. ,
8. . -
, , KB-
0. +I : +B ,
+#. (.14.1).
.14.1.
, .
.
25- . - 3 (25 , 80 ).
-
7/26/2019 Assembler Eto Prosto
142/328
III. , , 140
, ( )
24. , 25 (19h), ""!
AJB-
@AB(.14.2).
14.2. !%# $!#:
FB= 2
KB= ,
+B= , +#=
14.2.2.
80286+ ,
. ,
, , ,
. , Norton Commander Far Manager, -
+.
, , , -
, ?
, -
8. -
, ? (4FE"%)F'
-
7/