日期:2014-05-17  浏览次数:20721 次

想问一个关于操作系统实时模式切换到保护模式的问题,在哪个版块问啊 - Windows专区 / 非技术区

  .MODEL SMALL
  .386P
  .STACK 800H
0000 .DATA

0008 DESC STRUC ; define descriptor structure

0000 0000 LIM_L DW 0
0002 0000 BAS_L DW 0
0004 00 BAS_M DB 0
0005 00 ACCESS DB 0
0006 00 LIM_M DB 0
0007 00 BAS_H DB 0

  DESC ENDS

0068 TSS STRUC ; define TSS structure

0000 0000 BACK_L DW 0
0002 0000 DW 0
0004 00000000 ESP0 DD 0
0008 0000 SS0 DW 0
000A 0000 DW 0
000C 00000000 ESP1 DD 0
0010 0000 SS1 DW 0
0012 0000 DW 0
0014 00000000 ESP2 DD 0
0018 0000 SS2 DW 0
001A 0000 DW 0
001C 00000000 CCR3 DD 0
0020 00000000 EIP DD 0
0024 00000000 TFLAGS DD 0
0028 00000000 EEAX DD 0
002C 00000000 EECX DD 0
0030 00000000 EEDX DD 0
0034 00000000 EEBX DD 0
0038 00000000 EESP DD 0
003C 00000000 EEBP DD 0
0040 00000000 EEST DD 0
0044 00000000 EEDI DD 0
0048 0020 EES DW 20H
004A 0000 DW 0
004C 0018 ECS DW 18H
004E 0000 DW 0
0050 0020 ESS DW 20H
0052 0000 DW 0
0054 0020 EDS DW 20H
0056 0000 DW 0
0058 0020 EFS DW 20H
005A 0000 DW 0
005C 0020 EGS DW 20H
005E 0000 DW 0
0060 0000 ELDT DW 0
0062 0000 DW 0
0064 0000 DW 0
0066 0000 BITM DW 0

  TSS ENDS

0000 0000 0000 TSS1 TSS <> ; task state 1
  00000000
  0000 0000 00000000
  0000 0000 00000000
  0000 0000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  0020 0000 0018
  0000 0020 0000
  0020 0000 0020
  0000 0020 0000
  0000 0000 0000
  0000

0068 0000 0000 TSS2 TSS <> ; task state 2
  00000000
  0000 0000 00000000
  0000 0000 00000000
  0000 0000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  00000000 00000000
  0020 0000 0018
  0000 0020 0000
  0020 0000 0020
  0000 0020 0000
  0000 0000 0000
  0000

00D0 0040 [ IDT1 DD 64 DUP(?) ; space for 32 interrupt vectors
  00000000
  ]

  ;
  ; Global descriptor table
  ;

01D0 0000 0000 00 GDT0 DESC <> ; clear null descripor
  00 00 00
01D8 0000 0028 00 TG1 DESC <0, 28H, 0, 85H, 0, 0> ; task gate 1
  85 00 00 
01E0 0000 0030 00 TG2 DESC <0, 30H, 0, 85H, 0, 0> ; task gate 2
  85 00 00
01E8 FFFF 0000 00 TCS DESC <-1, 0, 0, 9AH, 0CFH, 0> ; code segment (4G)
  9A CF 00
01F0 FFFF 0000 00 DS1