. , . . 1.1. , , 16- . 16- h, .
1 00000h
256 BIOS 00400h
512 DOS 00500h
IO.SYS/MSDOS.SYS 00700h
(640 )
COMMAND.COM
|
(EMS)
0000h
64 EGA B0000h
32 UMB B8000h
32 EGA C0000h (384 )
64 - BIOS D00000h
64 UMB E00000h
128 BIOS 1000000h
64 HMA 10FFF0h
15
(80286) XMS
4
(80386/486)
640 , OOOOOh 9FFFFh , (conventional). (256 4 ). BIOS,
00400h 004FFh. , BIOS . , :
- ;
- ;
- , ( , , );
- ;
- ..
BIOS ; .
, 500h, DOS. DOS , IO.SYS MSDOS.SYS (1. IBMDOS.COM PC-DOS). .
CONFIG.SYS DEVICE=... (ADM.SYS, SMARTDRV.SYS, EMM386.EXE, ANSI.SYS .), . , COMMAND.COM, 3 . COMMAND.COM <Ctrl>/C, <Ctrl>/<Break> , , , COMMAND.COM. , COMMAND.COM , .
|
|
60-90 . 640 ( ) . , (, , DOS, , , , .). . 384 , (upper) , (). . , FOOOOh...FFFFFh ( EOOOOh... FFFFFh) BIOS, COOOOh - BIOS . . EGA; , , MDA 4 , .
PC/AT (640 ) (extended) , 80286 15 , 80386/486 - 4 . lOOOOOh. , 2-3 , , 384 .
" " (Extended Memory Specification, XMS), XMS-. , , MS-DOS, , .
MS-DOS HIMEM.SYS, , .. , . ( RAMDRIVE.SYS) ( SMARTDRV.SYS).
64 , , 64 -16 lOOOOOh lOFFEFh, (High Memory Area, ). , , , , . FFFFOh. 20. 16 , 0010h...FFFFh , , . MS-DOS ( CONFIG.SYS DOS=HIGH) , , . HIMEM.SYS, DOS , HIMEM.SYS.
|
|
, , BIOS , . 80386 80486 (, , , ). 386., , "" , (Upper Memory Blocks, UMB). MS-DOS UMB , - DOS (APPEND.EXE, DOSKEY.COM, KEYB.COM .). UMB , . UMB . UMB CONFIG.SYS DEVICEHIGH ( DEVICE), a - DOS LOADHIGH.
386. UMB 128 , ... CFFF. (, , - ) , UMB 386..
(XMS) , , - 16- . Lotus-Intel-Microsoft Expanded Memory Specification (LIM EMS) ( EMS 4/0) 32 . EMS- ( ) 16 , ( 640 1 ). , , , ( ) . , , - , EMS 4.0 ( , EMS 3.2) , .
PC/AT PS/2 , . , . , , . 386.. DOOO...DFFF, , , UMB. .
1.3.
, Intel , ( 80286)' . "".
|
|
16- - , : , - . , (. 1.2).
, , DX. ( ) . (, , DH) (AL, BL, CL DL) . mov BL, AH , .
, -, - -. , , , ( AL ). , . , ; DX ; - ( AL) ..
SI DI , , . - () (.. ) . . SI DI .
, .
-, SP, , , (PUSH, POP ). , .
SI, DI, SP, , .
CS, DS, ES SS , 20- 16- .
AL | |
BL | |
CL | |
DH | DL |
- SI DI SP CS DS ES SS IP FLAGS |
|
|
.1.2. .
( 640 , 640 -1 ) - , . 0 - 64 ( ). , 16, .. 16- , . , . , 16 4 - (), 20- ( ). . 1.3 inc meml.
06FF | ||
meml | ||
inc meml
meml
I DS - 10E2h
10E20h ( ) lDE22h
lDE24h lDE26h meml
1028 :
lDE2h * 10h = lDE20h + 6h
=1DE26h
. 1.3.
, , DS, lDE20h, meml 6 7 ( meml 6).
16- 0, , 16, .. 16- (). , ., . , 16 ; , , .
CS , , DS ES - ( , 128 ), SS - , IBM PC, , 64 . , , .
IP "" , , . IP (IP - , , ); , . , , IP, .
, , (. 1.4). 6 3 , , , .
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
OF | DF | IF | TF | SF | ZF | AF | PF | CF |
. 1.4. .
CF (Carry Flag) , .
PF (Parity Flag) 1, .
AF (Auxiliary Flag) - . ( 3).
ZF (Zero Flag) 1, 0.
SF (Sign Flag) , 1 .
() TF (Trace Flag) . TF1, 1 ( , 04).
|
|
IF (Interrupt Flag) ( 1) ( 0) .
DF (Direction Flag) . DF-0, , ; DF*1, .
OF (Overflow Flag) , .. .
. CF, DF IF STC, STD STI () CLC, CLD CLI (). PUSHF POPF; , ( CF, PF, AF, ZF SF) LAHF SAHF.
8086, , , , .
20 , 8086- 1 . DOS, ROM BIOS , , 640 . , .
, 80386, 80486 Pentium ( 80586), 8086. , , 8086.