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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
' m. e! }& V. c, D, S以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。8 k# D4 U( i. \" i' G4 Q& a
;---------------------------------------
8 W. t5 g8 Q0 d' v* t# {$ D% B  _: O% u2 f1 g7 W$ h& U, C* l
.model small6 K( s( _3 D+ U9 p& a& j
.586p
# V: q9 ^- C+ ]2 t; u# Q3 n.stack  $ e  b/ @3 e2 _" {+ d
   
1 n9 |/ W! J! {1 ?: o.data
7 T. _$ S5 g; k8 M# f' _" _$ J# K' n- f) \6 ?9 p( u, s" n
DESC STRUC
8 R* L' G$ a8 s  LimitL DW 0  
5 H4 A: H& \% [4 q4 ?/ ]  BaseL DW 0  
4 G3 t, _1 l) A/ K" x  BaseM DB 0  % C, k; l  q" t4 z3 ^8 f. ?2 r) Q
  Attributes DB 0  
  @, k: C6 n' s5 g9 s9 {5 ^8 C  LimitH DB 0  
/ }! M- q' z* F- w: `2 L  BaseH DB 0  8 }/ ^8 v  `. {5 w( P: l4 o" t
DESC ENDS( ]' r1 f- Q. }+ s# K+ i* t) I

7 g6 w! i% p' Q6 cPDesc STRUC( c6 M+ {) i8 d$ @+ O, y
  Limit DW 0  
. r* j3 @% n4 i9 g  Base DD 0  ' {) |. p) V8 V% x9 q0 x, T: @
PDesc ENDS
: |! T+ A) ~% F3 G) c- u1 Q5 o# B6 W( Q' S1 F: u* A. n( j
GDT_def Label Fword
- M6 C; d/ j) T( L) d9 t. qNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
$ [! A, s1 W) [# pData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
0 M; b8 L+ b% S8 L7 x7 a+ h- I7 B
1 j4 t5 ?, W% b: Q# Y, ~/ K1 qGDT_Addr PDesc <$-GDT_def-1, >6 T* H- g* ^; [! l7 R
cmd DD 255(0)1 @4 p9 p! t! T6 b
6 n, [  V  M5 e: i
.code
. W0 C( Q0 R  @' o( amain proc
' m9 L" ^  H. s9 W% }3 ?1 |  call Set4gb
0 A3 w2 q! J6 ~2 o( Y: f+ y0 o/ ?- `5 D2 _2 p% d! B, A
  mov esi, 20000100h( B3 Q" O0 G* ^6 F8 A3 w6 K
  mov dword ptr fs:[esi], 055aa55aah
* Z: j( Y" [2 L" _3 p' V      @3 j7 S) Q' K4 z; |- p4 G
  .exit& Q6 I# q8 J5 h6 d, g% @
main endp   3 ?  C  c2 m! l8 t! ?
( }/ ?& x- a0 o% c) b4 n
Set4gb PROC NEAR9 P& g% s2 X5 @( n3 u. S/ j
  in al, 92h
! i2 z- N* Q" Y7 p  or al, 002
1 E5 Q/ {. Q$ U" w/ W  out 092h, al
; W! V; O6 s" u( X9 ?/ A* [9 r6 S  out 0edh, al0 Z2 r2 `4 ^* Q: x9 ~% m

# d" ^. [: ]* S  cli) N3 M$ Z/ i* W* y. b
* w/ U2 n; `; V" w- Z$ a5 d
  mov eax, ds
1 G  F) g: _& j9 }: m  shl eax, 4! E) G4 J! C3 o5 B
  xor ebx, ebx& c; u5 C8 d; G, H# b
  mov bx, offset GDT_def$ g0 a9 d6 i, a, r& M* }
  add eax, ebx
! z% v, y% Y2 `6 f! w  mov dword ptr GDT_Addr.Base, eax
+ h5 N* s9 t" c$ F5 x  lgdt fword ptr GDT_Addr
" ~/ G: Z" n1 d8 N0 q% p
* u: F. q* s' I/ x8 L  mov bx, 8
7 X) T: _. T8 w5 F3 a/ [  mov eax, cr07 f% R  |+ U; `5 Y' y
  or al, 1' z" V, i9 M3 o' |/ `
  mov cr0, eax
& }- V' F, O8 o" Q# |) |( N1 M" k0 Z* L
  jmp pMod" r6 Z( S6 k0 n4 F0 P+ |9 V
  pMod:
, X( S0 K! u1 \; V6 N, n  y. m
" D; E, {  z  ?' x  mov fs, bx6 y3 \' Q* @. j% v% m
  mov gs, bx
! Y% h0 f# a. F  and al, 0FEh! B- F( u% G% X3 J) a# {0 ^
  mov cr0, eax
' ~5 e; P( G4 Y, q    ' E) g% |7 x/ T1 v% Z( i
  jmp rMod
) r# l) p, z( y. u  rMod:: W8 K% ^: Y  `2 o% o# Q! Q1 R/ Q

" C) ~$ ?9 H" p/ d& u1 N/ l8 S2 {  mov ax, 0
$ B# q; Z& [9 q$ N, W; L  mov fs, ax) T9 l9 T; @, e9 g0 w& w: r
  mov gs, ax4 T! U+ Q5 |. z
    $ p" D; D1 v: e: L- E0 L# V
    * t4 v0 v- {  c& H! |* j
2 w+ {2 D  G, A6 i7 C) m
  sti
$ r+ `# j4 z/ H& N  ret
( Y5 u# y0 \# \) S8 l/ l- tSet4gb ENDP, j' q; x! ~$ ]: Q
   
3 E! s$ P. ]. H! e4 send main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2025-5-2 02:28 , Processed in 0.038456 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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