找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 6195|回复: 0

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
% V7 C& U- Q/ {# t/ _( V- i2 i6 N以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
" Y1 t/ P$ f# h- ?0 O. }% ~: _;---------------------------------------
# ?2 K" w5 l$ m- u; @( `& y% f& z5 ]( B% w
.model small8 \% F! ?: B0 T; u( f  B
.586p) g0 o5 ^) v# k0 M( k: o, a
.stack  
  o2 J/ |) I1 p- y2 G8 S2 W   
9 A; |+ z6 M% _7 m) j.data) D3 ^* {( c. i! F. U4 R- u- z# N

0 }, Z$ @% _  `3 b/ RDESC STRUC  [3 G4 q: l. z- H- ^
  LimitL DW 0  - a! p# z$ S4 u9 T9 q, `  Q
  BaseL DW 0  
4 I; J8 @7 w2 @, E" [, R  BaseM DB 0  * X, k9 u) y4 X% g" J* P
  Attributes DB 0  
3 c$ |# M% X& R  t& o& p  LimitH DB 0  1 g0 @& n7 c! p" B; n. `
  BaseH DB 0  " M9 B, M$ _4 {& k3 o0 Z, I6 n
DESC ENDS
" ^: c+ M! @! V' w% N5 A: \: S3 B/ i9 ~4 S! c$ |" q& b1 {4 x
PDesc STRUC
8 |1 F6 B# h' M2 e! [/ l# T( E  Limit DW 0  : D0 r/ k0 _; a
  Base DD 0  
1 V& _5 d- a9 [: G' WPDesc ENDS6 \8 Y, z/ D% p6 T; d
+ i6 T; x/ m( H
GDT_def Label Fword
) O8 M9 H' Z: X3 N% a% W( M" dNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0># b; J( n1 l3 i2 u
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>$ p. b% y5 H' M. A/ a+ x6 @$ m

  C- Z" J- A- E7 I* Z+ p: tGDT_Addr PDesc <$-GDT_def-1, >7 p  }/ U/ u/ p) V5 S
cmd DD 255(0)- I3 q3 r2 V& i2 |# x. K, O
8 v4 p) B1 S; k) p. w+ D& @& d
.code
& d5 O. P$ |4 G; `' kmain proc: p) L! c$ u# F+ D/ I
  call Set4gb
4 N! x, @# \3 W
0 h# O4 E9 S9 b( J  mov esi, 20000100h
, c- o! @# G( z# N1 J9 U. x  mov dword ptr fs:[esi], 055aa55aah- Z# D) s6 g+ i' ^! r/ D
    9 k: O# e& [' _- n2 X+ d" _+ W
  .exit
- T8 N2 \7 s" R, Z) q3 ^main endp   
" @- a. O8 [2 y  X  G
  o0 S5 _4 K3 L0 x2 JSet4gb PROC NEAR
0 _6 p4 V3 w* H4 v0 Q  in al, 92h
- s9 r. k+ _6 w( r* ~7 Z  or al, 002/ G+ {! c& l! p% R' K: {
  out 092h, al# [% O' P' ~" j7 }
  out 0edh, al. d& a3 \9 t4 v& r2 F
: \9 J/ B. `- c; S6 M9 n1 K& `
  cli! L/ k0 @0 D! z* m, q2 R7 u6 P2 q
- m$ S, Z. b1 l9 \- c
  mov eax, ds( l2 E7 }& s  Y/ q
  shl eax, 4! t; B* Q* y3 j; x
  xor ebx, ebx4 D7 b7 s5 {2 @' |
  mov bx, offset GDT_def
5 R$ Q) A& y! T! K* v  add eax, ebx7 o" k1 p* N' C6 M) H
  mov dword ptr GDT_Addr.Base, eax
" U' D, e1 q+ _1 v  lgdt fword ptr GDT_Addr  L5 y- X( K# Q0 E. b
  n7 n- o" q2 E
  mov bx, 8
( u) y; C$ I6 A  O% j6 F$ @( h0 x  mov eax, cr01 y0 X5 ^" E6 ~4 I
  or al, 1, g7 G& ^) @9 ?+ _
  mov cr0, eax& F3 k# U+ ^3 L: L- X
/ k* P. U6 M2 `0 e
  jmp pMod9 C- K  p9 q& d& ]
  pMod:
- R# `- h$ {  s9 Z: b* D* `! Q& j" Q
  mov fs, bx
$ y+ _, u: Y( }  mov gs, bx- N' D& h! c0 p. h3 G* y( L
  and al, 0FEh# h( h! E' P/ G/ j! `# d
  mov cr0, eax
+ A' H5 H5 f% ^: O- [' y    & O) y4 E9 O+ E6 d! V" ]
  jmp rMod
$ j1 c3 n1 S& w( o0 A. S  rMod:4 ]; M" E" v# |/ B4 s* u

: x% z+ M+ p  M. }# U% g  mov ax, 0
) _0 i- d, d" z& \8 t  w4 N: |( a5 @$ L  mov fs, ax
* Q( Y' x7 m  S- s$ x  mov gs, ax5 u, \. }% b. g# W9 H
   
0 N0 j) {: F% }( a; C( `7 t% g   
9 U4 G3 w+ S7 R( ~
$ @4 A7 P3 K( _9 c  sti
: ^( q: ?* A' k( @0 N  ret
9 V3 M9 t6 v/ u& B6 P' m, x4 F2 K$ sSet4gb ENDP) U1 x8 i0 a: Z2 p* r  s
    - d$ y1 q4 u7 a" K& j% E3 }
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-2-19 06:43 , Processed in 0.036420 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表