1
1) ү қ ө ә ү, -қ қ қ ө ү қ қ қ . -ң қ құ қ қ .-ң құ 1 :
- -ң құ
қ ү ()
ұ, қ .
:
- ;
- ;
- ғ құғ.
қ ә:
1. ғ қ ғ;
2. ә .
ү
ү қ - қ ә ң ү. ү ө:
1. ;
2. ққ;
3. .
қ ү
қ ү ұ ққ қ қ құ қ қ өң ғ.
ү ғ.
қ ү.
ү қ қ ( ә/ ң , ө, құ).
.
ғқ ң ө ң қ ң ү.
өң ң қ ү .
қ ғ ә қ қ ө.
әң
қң ң . 0 1 ә қ ү.
құғ . ң ғ қ 0- 7- ө:
ө: 7 6 5 4 3 2 1 0
ә: 1 0 1 0 1 0 0 1
ө .
|
|
ө ң ғ қ 0- 15- ө.
ө: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ә: 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0
ұ ө 8- 15- ү ә 10101010 ә , 0- 7- ә 11110000 ә .
қ ү, ғ . қ ү ң ғ ққ . ү ө қ . ұ ң қ қ, -қ (BCD) ә ASCII қ ү.
2) ә қ ү ң 3 : ү db (define byte, қ), ө ү dw(define word, ө қ) ә қғ ө ү dd(define double, қғ ө ):
size dw 256; size ұғ 256
setb7 db 80h;setb7 ұғ 180h
қ ү dup(duplicate, ) қ.
Rawdata dw 300 dup (1);1 ғ
;300 ө
string db 80 dup (''); '' ғ
; 80
ʵ , df(define farword, 6 қ қ), dq(define quadword, ө ө қ) ә dt(define teraword, 10 қ қ) , қ қ.
3) қ ғ ө -ғғ . ғ ү :
- қ ң қ қ ();
- ұқ ә қ ;
- ү қ, қ ө ә әү ү қ..
:
1. .
2. ().
3. ().
4. .
. , *.asm, 䳜 *.inc. ̺ASCII.
ғ . . *.obj 䳜. , 䳜 (Microsoftmasmml, Borlandtasm, tasmxbasm):
|
|
masm prog1.asm
tasm prog1.asm
ʵ .
(, Microsoftlink, Borlandtlink). ͺ *.exe *.com .
䳝. 䳜, . , . Microsoft w - CodeView, Borlandtd, td286, td386 - TurboDebugger.
ғ ұ. 2 ө: ә (). қ қ , .
ғ ү :
[ :] [] [; ҉]
ҳ қ . - қ . қ қ , , , ғ ү ғ. (a- z- A- Z- ), (0- 9- ), - _,?,@,$ . қ ү қ . . @ , - .
қ ң ұ. . .
2
1) қ ү, ғ . қ ү ң ғ ққ . ү ө қ . ұ ң қ қ, -қ (BCD) ә ASCII қ ү.
0 ә 1 ө . ң ң қ ә . , 10101001.
ң ә ә ң ә ң қ. қ ғ ү :
қ қ: 128 64 32 16 8 4 2 1
Қғ : 1 1 1 1 1 1 1 1
ғ ң қ 255 (1+2+4+...+128)- ң .
қ
қ 0- 9-ғ қ ұ.
қ ң ң қ D ә . ң ң ә , қ қ.
қ
қ 0- 9-ғ ң ә A- F- ә ұ. қ ң ң қ H ә . ү қ.
|
|
1 0- 15- ң , қ ә қ ә .
1
-қ (BCD)
-қ қ . -қ ғ ғ ү. ғ қ ү:
00- 99-ғ .
ғ , ү ө ң:
00- 09-ғ .
ASCII -
, қ ң ғ ә ү ASCII қ. SCII (қ ү ғ қ ) -қ қ ү қ.
, 0- 9-ғ 48- 57- (30h- 39h-қ ) ASCII ғ . "A" - "Z"- ү ә 65- 90-ғ (41h- 5Ah-қ ), "" - "z" ә 097- 122- (61h- 7Ah-қ ) ASCII ғ . ә ғ ү ASCII ө қ. : 17h ғ . ү , ASCII қ ү қ.
, ү ү. , -, .
қ.
ә қ 3 ө:
- ә қ;
- ә қ;
- ғ ә қ.
ү, ү . ҳ - .
қ қ ү:
- ;
- ;
- ;
- ;
- .
ҳ ( ) ңө , ғ ң ә қ .
:
mov , 5
5 ә mov ә қ .5 mov ң . ө ғ , .
䳜 .
: movax, bx
қ :
- 32- :, , , EDX, ESI, EDI, ESP, EBP; - 16- , , , DX, SI, DI, SP, ; - 8- , AL, BH, BL, CH, CL, DH, DL;
- CS, DS, SS, ES, FS, GS.
3) DOS ң :
1. қ ң ү ғ .
2. DOS-ң ққ ұ ү ғ. қ қ қ , ұ қ қ .
|
|
BIOS DOS- ғ ө ү . ә қ ә қ қ ү, DOS Ctrl Alt - Enter ң ң қ Shift ң қғ . DOS ғ ң қ қ қ ә DOS- қ қ ungetch () ұқ қ. ұң ә 16h үң әү қ ә қ үң қ ғ .
INT 16 h, = 0, 1Oh, 20h - ү қ. : = 00h (83/84-key), 10h (101/102-key), 20h (122-key). ғ: AL = ASCII , 0 -ң .
= ғ ң - ң ASCII-.
қ ә ғ - ә . ұ ә ә қ ә BIOS өң (INT 9 ). 16hү ұ өң ғ ү . ғ ASCII- ә , -қ ұ ң , AL- ң - қ. ғ ң ASCII- ә , AL-ғ-ң (, ұ ү ) 0 қ, қ , -қ ңASCII-. 00h 84- қң ң өң қ, l0hқ 101- 105- ә 20h - 122- өң. қң , BIOS,16h ү 09h(ұ қ 15hC0h ң қғ ).
INT 16h, = 1, 11 h, 21h - .: - 0lh (83/84-key), llh (101/102-key), 21h (122-key).ғ: ZF = 1, .
ZF = 0, , ұ ғ:
AL = ASCII- , 0 -ң .
= ғ ң - ң ASCII-.
қң қ, BIOS , 84- ASCII 01h .
INT 16h, AH = 05h - қң .
: AH = 05h
CH = -
CL = ASCII-. : AL = 00,
AL = 01h, қң ғ ғ
AH өBIOS- .
қ , ү ң қ ң ұқ.
ғ ң қ 32 ұ. ү қ ө :
- 16 ққ ;
- 16 ү .
Ққ . Ққ өң қ . ұ :
- 32- . ә қ ү қ ( -қ, ): eax/ax/ah/al, ebx/bx/bh/bl, edx/dx/dh/dl, ecx/cx/ch/cl, ebp/bp, esi/si, edi/di, esp/sp;
- : cs, ds, ss, es, fs, gs;
- қ-ү ә қ : eflags/flags ә ө eip/ip.
ұ ң қ өң ө қғ ү; ө ү ң 16- ә 8- ө қғ . ң ү 16 ө . -қ құғң (Қ) қ Қ :
|
|
- eax/ax/ah/al (Accumulator register) . қ ә қ ү қ. ұ қ ;
- ebx/bx/bh/bl (Base register) қ . ғ қ ң қ қ ү қ;
- ecx/cx/ch/cl (Count register) -. қ ә қ ү қ. қ ө ә ң ұ ә . , ұ loop қ қ ғ қ қ / ң ә ;
- edx/dx/dh/dl (Data register) ә . // ah/al қ ұ қ ә қ. қ . қ ү қ, ғ ұ ү өң, ң әқң ұғ 32, 16 8 ;
- es/s (Source ndex regster) қ . -қ ұ;
- ed/d (Destnaton ndex regster) қғ (қ ). ҳ ұ -қғ ұ.
ң қ қ ң құ . ұ ү ү , ң қ ү :
- esp/sp (Stack Ponter regster) ө .
ғғ өң ө ұ.
- ebp/bp (Base Ponter regster) ө . қ ө ұ ү ғ.
2.ңү. 䳜ү. 䳜қ 16 . , cs, ds, es, ss䳜ғө. ғ, 20- қ 32 . ңқ (құ 8088 䳜 24 ).䳜ү: , , қ, , қ-.
3. қ қ? ң . 8 ұ. () (ғ. Byte, B) ө ө . ұ .
1) (ғ byte) - қ ң ұ, ә ө ғ ң . ң ұ ә қ. - қ ү қ 8 , ғ ң ұ. , Ŕ ә 10000101, ә 10100101, / ң 00101111, 8 00111000 ү өң. қ ө ғқ, ң ө 256 (28=256) ө . ң ө ө. ү ң ү: (1 =1024 =210.), (210 ), (210) қ. , -ң ң ң ө 32 , 32Һ210 () қ қ. , -ң қ ( ) 18 ә ө қ қғ . , 400 , ә 50 қ, ә қ 50 ң ң ө қ , 400Һ50Һ50 = 1000000 = 1 (ғ ө 1 1000 қ ). Қ қ ө қ ө , 32 ұ. 64 8 ұ ә қ ө . қ ө өң. [1]
2) (Byte) 1) қ өң 8 ( ) ң . қ қ : 1 () 1024 қ ң, 1 () 1042 қ ң; 2) ң . Ә әң ң ә, ғ ғ ә . ң қ өң ң қ құғң ғң . Өңқң қ ө (ң құ) 100 , ө ө қң ә 5055 қ ; 3) ә қ ү қ өң ө. Ә ұүөң.
1. қ . ә ң қ. , ң қ ң қ. 䳜 [ ] .
mov ax, [ecx] қ 䳜 ө.
18086 қ [], [SI], [DI], [] . ү (, DS ). [] ү ғ қ. қ қ, SI DI қ - .
қ қ ө :
mov AX, OB800h;䳜
mov ES, AX; ES-
mov BX, 2 0 0 0; ң ғ
mov byte ptr ES: [BX], !;ғ
, SI DI ң ө , DS қ , қ қ DS: ү :
mov AX, 0B800h;䳜
mov DS, AX;DS-
mov BX, 2000;ң ғ
mov byte ptr [BX], '! ';ғ
ұ ңғғ қғ . , 1 .
, SI ә DI ұ қ ң , қ ң қғ :
mov DI, 2000;ң ғ
mov byte ptr [DI], '! ';ғ
ұ ғ , , , SS қ.
қ (ө ) ә қғ . қ қ , , , , .
I80386 . қ қғ - [], [], [], [EDX], ә ү - [], [ESI], [EDI]. ұ ғ , , ү, қ.
[] қ DS ң , [] - SS ң қ.
1. Offset . mov BX,offset array;қ ң қ
mov BX,offset array;
mov DI,offset bios; қ ү ө ғ
mov DX,offset bios;ғ ғ
mov DX,offset bios;ғ ғ
3. қ қ? ң , қң ң ө
қң ң . 0 1 ә қ ү.
құғ . ң ғ қ 0- 7- ө:
ө: 7 6 5 4 3 2 1 0 ә: 1 0 1 0 1 0 0 1
ө .
ө ң ғ қ 0- 15- ө.
ө: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ә: 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0
ұ ө 8- 15- ү ә 10101010 ә , 0- 7- ә 11110000 ә .
қ ү, ғ . қ ү ң ғ ққ . ү ө қ . ұ ң қ қ, -қ (BCD) ә ASCII қ ү.
1. ө ң қ ү. ө ұ қ ң ә ү қ ө :
1. қ :
- ө ;
- қ ә қ (ғ);
- қ ү қ ә қ ү қ;
2. қ :
3. қ :
ө 5 jmp ң ө ү . ʵ :
ққ (-128...+127 );(Code segment
... jmp short go; dd... go:... code ends)
қ (ғғ );
(ң қ );
қ ( ғғ );
( қ ).
2.қ қ қ. қ қ :
қ ң ө 0- 1 қ . ұ I8086 ң 20 қ;
ң ө 64 . I8086-ң 16- ү. , 16- 216-1 .
қ қ ( ) . ( 16 қ ө) 20 ә ә қ . ғ, 16 ә . ұ ә . ұ ұ қ ң , ә 20 қ . қ қ қ қғ ү . i486 Pentium (32 ) 20 ә .