32-
32- Intel Intel386 [1,31-34]. 16- 8086/88 80286 (), . 80386 - 64
32- 4 - , . 64 [1,31-34], (paging). -, . 8086, 80286. , [1,31-34].
Real Address Mode - ( - Real Mode), 8086. 1 ( , 80286, 64 ).
Protected Virtual Address Mode - ( - Protected Mode). 4 , 64 .
Virtual 8086 Mode - 8086. , 8086. . . , - .
Big Real Mode, Unreal Mode, 32- , 4- . , , FS GS .
, Pentium 486, System Management Mode (SMM), , . .
8-, 16- 32- , , , , .
|
|
, 32- 86. , -, , , .
( ) , , , , [1,31-34]. 86 , , . . , - , . Little-Endian Memory Format. - Big-Endian Memory Format, ( ) , . XCHG, BSWAP.
, 32- .
(Bit) - . ( ) ( ).
(Bit Field) - 32 , 4 .
(Bit String) - 4 .
(Byte) - 8 .
: /// (Unsigned Byte/ Word/Double Word/Quade Word), 8/16/32/64 .
: /// (Integer Byte/ Word/Double Word/Quade Word). () , .
- (BCD - Binary Coded Decimal):
8- (Packed BCD), ;
8- (Unpacked BCD), ( 7:4 , ).
, (Bit String, Byte String, Word String, Double Word String) 4 .
:
(48 ) - 16- ( ) 32- ;
- 32- ;
(32 , 8086 80286) - 16- ( ) 16- .
, , , .
80- BCD- FPU 486 , 8087/287/387. 64- 128- SSE.
:
(Single Precision), 32 - 23 , 8 ;
|
|
(Double Precision), 64 - 52 , 11 ;
(Extended Precision), 80 - 64 , 15 .
- 80- (18 ).
, .
, , :
(Packed byte) - ;
(Packed word) - ;
(Packed doubleword) - ;
(Quadword) - .
16- , , .
2.1.3.
86 , [1,31-34]:
;
;
;
;
;
;
;
;
- ( ) .
86 16- 8086/8088 80286 [33, 35, 36]. 16- AX, BX, CX, DX 8- , , , , DH ( - High) AL, BL, CL, DL ( - Low). - SP (Stack Pointer - ), (Base Pointer - ) SI (Source Index - ), DI (Destination Index - ) 16- . 16- IP (Instruction Pointer). . :
AX - , , ;
AL - , , ; , (XLAT);
- ;
BX - ;
CX - ;
CL - ;
DX - , ;
SP - ;
SI, DI - .
IA-32 32 (Extended - ). 16 . . , (16 32) , , . , (16 32) , ( 8 ). - 16 . . , 16- , 32- . , (16 32 )
SIZ. 8086, , , DX.
16 , . . 2.1, [1, 31-34].
1. . 32- .
|
|
() 32- EAX, EBX, ECX, EDX, EBP, ESI EDI. 8, 16 32 (. 2.1). , ESP, . . . , ECX, ESI, EDI . . : , -, , , , .
2. . , [33, 34]. , . (. 2.2) , .
. 16- , , , . (. 2.2).
. CS, DS, SS, ES, FS GS . (, ). , (. 2.3). .
, , , CS. , EIP . CS , (, CALL, IRET, JMP). . , .
SS . CS SS , .
DS, ES, FS, GS . , , , , . , .
. DS, ES, FS, GS . , .
|
|
. 32- . . , .
1. . [33, 34]..
EFLAGS FLAGS 32 . 0-15, 8086 80286, [34]. OF, SF, ZF, AF, PF CF , ( FPU, ). . . , , (IF) (DF). 80286, VM RF, 4- 5- . (FLAGS EFLAGS) , . , , . , FPU, FPU .
EFLAGS [33, 34].
ID (Id Flag) - CPUID (P5 , 486).
VIP (Virtual Interrupt Pending) - (P5 ).
VIF (Virtual Interrupt Flag) - IF ( ) (P5 ).
AC (Alignment Check) - . 3 , (2, 4, 8 ), # ( . . 2.5). 0, 1, 2 (486 ).
VM (Virtual 8086 Mode) - 8086. #GP. : IRET . POPF, PUSHF 0. EFLAGS, , SMM.
RF (Resume Flag) - , .
IOPL (Input/Output Privilege Level) - -.
NT (Nested Task Flag) - .
OF (Overflow Flag) - . , .
DF (Direction Flag) - . , , , - . , CLD STD.
IF (Interrrupt-enable Flag) - . . , (CLI STI) ; , .
TF (Trap Flag) - ( ). 1 (INT 1).
SF (Sign Flag) - . - .
ZF (Zero Flag) - .
|
|
AF (Auxiliary Flag) - () .
PF (Parity Flag) - , .
CF (Carry Flag) - () . (STC, CLC, CMC), (, ).
. EIP . (, . .), . , EIP , .
, , , [33, 34]. , , .
. 2.4, : Base , mod , reg/m /, Index , Scale .
. . , , , [35, 36].
. , , . [32-34]:
, , .
, 16 32 . , .
, , 16 32 . , .
, . .
. , . , .
. ( mod/reg sib).
. . , , , .
SIB (ss, Index, Base) . , SIB , , 1, 2,4 8.
. 8-, 16- 32-. , 8- 16- 32- , . 16- 32-.
. , , . 8-, 16- 32- . , . 8- 16 32
, . NOP ( ). [32-34]:
- ;
- (32- EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP; 16- AX, BX, CX, DX, SI, DI SP BP; 8- AH, AL, BH, BL, CH,CL, DH DL; , ).
- - . . :
-- ;
-- ;
--;
- -;
- -.
. , , .. .
:
AAA AL ;
CMC ;
STD 1 .
. () [33, 34]. . 8/16/32- . reg mod r/m ( mod=11B). , - EAX/AX/AL. sreg2 sreg3, reg mod r/m.
:
INC ESI ESI;
SUB ECX,ECX ECX;
MOV EAX,CR0 EAX CR0;
ADD AL,DL AL DL;
MOVSX EAX,DH .
. , .. . - , -. 8, 16 32 ; . , mod r/m .
:
MOV EAX,0f0f0f0f0h - EAX;
AND AL,0fh AL;
BT EDI,3 CF 3 EDI.
-. 8086 - . -. 64 -, -.
- EAX/AX/AL, ( ) DX ( ).
-:
IN AL,40h ;
IN AX,40h - ;
IN EAX,40h- ;
OUT 20h,AL- ;
OUT 20h,AX- ;
OUT 20h,EAX- ;
IN AL,DX - ( DX);
IN AX,DX- ;
IN EAX,DX- ;
OUT DX,AL- ( DX);
OUT DX,AX- ;
OUT DX,EAX- .
. , () . 0 , 1- .., . , DS, .
. ( ), .. . , . .
:
MOV AL, [20h]- AL;
SHL WORD PTR [A5h],5 ;
INC DWORD PTR[12345h] .
, , .. , .
2
1.
2. Intel 80i86. .
3. . .
4. .
5. Intel 80x86 . .
6. . .
7. . . .
8. Intel 80i86. .
9. Intel 80i86 8-, 16- 32- . .