1. .
2. .
3. .
4. 2.4.
5. .
6. , , .
7. (TD) .
8. , .
9. .
10. , .
11. .
12. .
13. .
14. , .
( ) 86. 16 1981 ., 64 128 . INTEL . , , IBM PC AT, - . , , , , . , . , 8086 .
- (-) 2.1. :
) ;
) ( );
) ( ) ;
) ;
) ;
) .
− . − . , , .
:
, ;
- , , ;
. , . CPU (Central Processor Unit);
|
|
− , ;
− , .
− (), (), (). ( ) .
( ) − , , .
: , , . - .
- , , . :
1) ;
2) ;
3) ( CPU);
4) IP;
5) ;
6) () ;
7) ;
8) ;
9) ;
10) .
, , .
( ) IP , ( ) ( ). , IP .
IP , , IP , .
2.1.
. , , .
- 20 , 1 . , .
- .
(), , .
|
|
8086
, - .
, .
- , , . 16 . .
, . :
(, , , D);
(SI, DI, BP, SP);
(CS, DS, SS, ES);
(IP);
( ) (EF).
( 2.2) , , , .
, ( ) L A DX:AX.
16 AX, BX, CX, DX 8- AL, AH, BL, BH, CL, CH, DL, DH. L H (low-order) (high-order) 16- . .
15 8 7 0 ← | ||||
AX BX CX DX | AH | AL | (accumulator) | |
BH | BL | (base) | ||
CH | CL | (counter) | ||
DH | DL | (date) | ||
2.2− |
− (16 ), , , , . , − .
(16 ), , , .
(16 ), , , . L - .
DX - (16 ), , .
( 2.3) , . .
15 0 | |
SI | (source index) (destination index) (base pointer) (stack pointer) |
DI | |
BP | |
SP | |
2.3− |
SI DI BP BX () .
S . .
BP .
() , . ( stack ) − . 1, 2, 3 ( ), − 3, 2, 1.
|
|
() , , .
, SS, ( ) SP. , .
, SP. , SP , , ( + ).
SI, DI, BP, SP , 16- .
INTEL x86 . , 16 65536 .
. 16- ( 2.4). .
15 0 | |
CS | (code segment) |
DS | (data segment) |
SS | (stack segment) |
ES | (extra segment) |
2.4 - |
.
CS (code segment) .
DS (date segment) .
SS (stack segment) .
ES (extra segment) , .
IP
IP (instruction pointer) 16 . , .
IP , , .
() () CS IP :
= CS × 10 + IP.
CS , IP . CS 16 10 .
, IP , CS . CS . IP 16-, , , 65535 FFFF . , 65536 .
EF
EF (flags pointer) ( 2.5). , - , , 1 ( ) 0 ( ), .
|
|
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OF | DF | IF | TF | SF | ZF | AF | X | PF | CF |
2.5 −
8086 9 . .
. , .
CF (Carry flag) . 1, ( ), 0.
PF (parity flag) . 1, , 1, 0 - ec .
AF (Auxiliary carry flag) . 1, ( ) . - .
ZF (Zero flag) . 1, .
SF (Sign flag) . .
F (overflow flag) . 1, - . , , , , .
TF (Trap flag) . , . 1 , .
IF (Interrupt flag) . 0 , ( INT). .
DF (Direction flag) . . 1, , , , . , . DF = 0, , .
, , . , () . 2, . 1(20), -2(21), - 4(22), -8(23) ..
- 0 1, , .
. 10110101 .
.
.
.
, . 10 A F. , 16, 16 . , 1 (160), 16 (161) .. 2.1 .
, 234 11101010.
, , .
:
1. 0 1,
|
|
, 1010110011.
2. 0 7,
G, 126G.
3. 0 9,
D, 129D 129.
4. 0 9
A F, H. , 035. 0 , 35 , .
5. , ,
$.
6. .
.
2.1-
16 | 16 | ||||
B | |||||
C | |||||
D | |||||
E | |||||
F | |||||
1D | |||||
A |
:
, (-32);
, .
, .
,
2 - | |,
, ;
- .
, :
(-1) = 256 1 = 255 = 11111111b = FFh
(-2) = 256 2 = 254 = 11111110b = FEh
(-3) = 256 3 = 253 = 11111101b = FDh
(-126) = 256 126 = 130 = 10000010b = 82h
(-127) = 256 127 = 129 = 10000001b = 81h
(-128) = 256 128 = 128 = 10000000b = 80h
, .
.
: 4 0000 0100
4 1111 1011
0000 0001
1111 1100
, .
: 105-56 = 49
(+105) 01101001
(-56) 11001000
(+ 49) 00110001 .
:
[A Z, a z, ];
[A Z, a z,0 - 9 ];
;
32 ;
;
, .
()
, . . . , , . .
()
, , :
;
.
:
[ ] Dn
, .
Dn - :
DB (8 ). .
, Tabb db 23,45;
Hex db 35h,6Fh;
Prt db !$; .
Tabb, Hex, Prt - .
DW ( ).
, tabw dw 123,45; .
DD ( ).
, tabd dd 45567785.
DF .
, tabf df 455677858700.
tabw, tabd, tabf .
DQ .
DT .
DUP .
, 1 DB 9 DUP (06),15,47; 1 (),
DB , 9 06.
, . ,
TABDB DB 45,32,78,09,55,39; . TABDB (45), TABDB +1 (32) ..
EQU = , (). 16- , , , , , . , .
, EQU 1024; 1024.
Tadr EQU DS:[BP] [SP]; Tadr .
Count EQU CX; .
2 = 24; 2 24.
( 2.2) (BYTE, WORD, DWORD) (SHORT, NEAER FAR). , , .
, :
TW DW 4564, 67 81,1234
(67) 99.
Mov BYTE PTR TW +3, 99
:
TW DW 4567, 99 81, 1234
2.2
PTR SHORT | : PTR ; . , - , . - BYTE, WORD, DWORD, QWORD, TBYTE. : JMP SHORT ; NEAR JMP , -128 +127 . |
offset $.
offset , , . ,
Mov AX,offset TW
TW.
$ . Ÿ , . , , .
8086. , :
.386 80386;
.686 - 6;
.686p - 6 (Pentium Pro).
:
[:] [1,2] [;]
, , . , . . :
METKA1: MOV AX,BX;
.
.
(METKA1) . . 31 (:).
(MOV) , .
(AX,BX) , . , . , . . :
,
, , , , . ; .
− , . (;).
8086 1 6 , 2.6.
7 1 0 7 6 5 3 2 0
COP | D | W | MOD | REG | R/M | DISP 8/16 | DATA 8/16 |
2.6 8086
( ).
W ( W = 0 8-, W=1 16-).
D , . D=0, , D=1, .
REG , . 2.3 REG .
2.3 − REG
REG | W=1 | W=0 | REG | W=1 | W=0 |
AX | AL | SP | AH | ||
CX | CL | BP | CH | ||
DX | DL | SI | DH | ||
BX | BL | DI | BH |
MOD R/M 24 .
( ) DISP8 DISP16. .
R/M MOD, 11, REG .
DATA8 DATA 16 .