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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好% Q: t9 g5 t8 K2 x( s# }
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。
! E8 R! |2 d  V0 e' u& h- I. n;---------------------------------------; y( z( H0 ?. N/ a* @
/ A: L7 N4 X2 {8 v$ ~; u% O( [
.model small5 y7 U: ]; A5 z  A3 ]9 ^7 P/ C  @" ?
.586p
& c) y1 F  @1 E% F, ]$ e6 B.stack  
$ W4 S7 S5 O$ F   
/ g! Q+ o( s4 s/ _.data
, G, h( a4 e8 e5 o8 {5 I) ?+ {- x( U/ i
DESC STRUC
2 Q, L1 M1 Y  J* n  K  LimitL DW 0  
" ~  n2 F( j4 L; A. X  BaseL DW 0  ( Y2 c9 h% p; w2 U; D
  BaseM DB 0  
9 M1 `  v/ P& c! T% T) ?3 \  I  Attributes DB 0  3 S3 }) h8 g, E: l$ e1 B- V5 X
  LimitH DB 0  
2 n# i, E  Y0 h) f& @& F- M$ T  BaseH DB 0  
7 w0 K/ v/ A' ^+ n$ E  S* ~DESC ENDS
" f3 w5 R! t: B$ H  d' {) O0 W6 m* h5 ?, c( ~
PDesc STRUC
# c0 m! S  B; L! L. T1 k% x; h$ o  Limit DW 0  
8 e  c' ?/ Z5 j% q& G9 h  Base DD 0  
, v" B+ @7 f2 ePDesc ENDS2 Z0 ^$ p, R) q' z6 B2 g* b
7 R7 ~' M" F  t/ ]* `  z0 ]
GDT_def Label Fword1 ^1 R5 P6 |; f1 v1 _' p
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
0 m3 N0 d. W! ?6 ~- HData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
4 f: O& f" f, d; e6 M3 S3 Z: ?4 b) W7 D( J( n6 _
GDT_Addr PDesc <$-GDT_def-1, >
/ W2 U7 p. N* hcmd DD 255(0). E2 `/ |% q$ M: o

+ D' D4 L3 F, P( v.code, y) s" Q8 I2 v; O) l: d2 V* W
main proc& F9 Q. M/ A$ D, x
  call Set4gb
9 r3 U- z2 U% d
/ U4 r, A# ]! h  mov esi, 20000100h3 M2 y6 s2 y& @
  mov dword ptr fs:[esi], 055aa55aah) i+ Q/ j8 ~$ {
    " H( T: m9 M8 }/ k4 _* Z! n/ r
  .exit
9 P; j- i; F" k- m; G9 Smain endp   6 a& e' @* J( n

+ Y% o, O/ H) pSet4gb PROC NEAR
) v4 B4 n5 t' S% e  in al, 92h
+ ^2 V, _" E$ k, _4 A) }# J  or al, 002" j4 ^* ~) _/ [
  out 092h, al9 N2 S% ]9 [7 v! m% N; C
  out 0edh, al5 V% _' \$ y7 G4 @' K
! o) B: B! A) M2 a# Z  x
  cli
! s$ a- _! t4 i2 X& T" F* G( D  d) v% B
  mov eax, ds  t) H6 j0 C5 |, v0 u3 A" J; ^
  shl eax, 4- a2 u7 P  w0 x$ t  s+ p4 L
  xor ebx, ebx
0 W% a# Z6 @; V6 S  mov bx, offset GDT_def
6 @, V- a/ K. v# j  add eax, ebx$ `& d. F7 P) V
  mov dword ptr GDT_Addr.Base, eax
/ d) Q! A8 |1 _" j0 m  lgdt fword ptr GDT_Addr
1 _4 F" E  m6 ]9 U
/ y7 |2 B2 W0 u# Y( L  O! f  mov bx, 8: [! I$ W+ c& s2 @+ N+ Y! R
  mov eax, cr0
% ^# t4 f, Z0 |2 R% M/ P; k  or al, 1$ ^* J+ R9 _- u
  mov cr0, eax
% J- z7 Y+ o1 z* F8 x0 u3 ?% @8 D! _' K. W' B2 K
  jmp pMod9 X" S5 O0 ~; V0 z" s7 E) i2 ~# x
  pMod:
- V9 H* y6 L3 O5 V8 n5 B& j0 |. z  d' j* X. J5 i
  mov fs, bx
1 P5 T4 L; x- Z3 P: _  mov gs, bx
/ L; B& ~4 z1 R5 x) e8 U  and al, 0FEh
$ p3 R7 N- l1 o8 {5 l% |8 ~  mov cr0, eax9 M8 M+ A7 p8 P+ _4 A
   
" m  {9 E% C/ m# t7 j+ s* p1 g9 H  jmp rMod
- c: j% J" B+ n8 |  rMod:% S  I: O3 \9 N& E/ X
& E! ?5 o# I6 m' W
  mov ax, 03 [. M( }* T' e" L
  mov fs, ax# n, d) h; M) _8 @3 ~- K
  mov gs, ax7 r; L- s9 P8 j  ^
    8 ^% ]* Y9 m7 k  P! J+ M
   
4 B, d0 t: ^1 y0 A% ]7 l5 s
4 C5 B) G0 j. P8 v$ N  sti
$ u' G* I& _6 R7 z6 g" |2 b  ret( o6 s# i# o+ O4 Y' @! w
Set4gb ENDP
: U3 }. ^( w" ]4 l( y2 r6 F7 E   
" l' Y+ R9 {7 }0 oend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-1-19 00:35 , Processed in 0.054456 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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