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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
- O) v& O: N$ T7 X: g以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。. h1 E9 p0 J; @* |: _" [& v
;---------------------------------------: A+ b, B, r+ w& z
  M( @; J% g2 W2 |. i
.model small# z0 T" {/ R* a. H% u
.586p
2 L6 E6 }8 i, Z  A% s! s.stack  
+ E4 o. h; q  i5 z* Q8 y$ e" I4 l   
  G2 c8 q0 Z1 Z! E7 ~9 a3 k% |& Y.data
& |6 E/ Q5 p% t2 {- C: t' [6 V
: W; T( B- c/ y3 Y' x$ _DESC STRUC
- I" z  f3 \; ?8 E( s. w& \  LimitL DW 0    z: T! L5 {3 a. n
  BaseL DW 0  / s: j: Y- J0 U! z0 ^5 _
  BaseM DB 0  
( _2 A% a0 I# I, b% S' Q  Attributes DB 0  
1 a" a! n' l7 b# M  LimitH DB 0  
( E. h4 }/ l2 J8 P* h  BaseH DB 0  " r9 v. A9 _8 x+ Q+ O" f1 R* F
DESC ENDS& F3 o; J/ d, G3 B# @& A8 b
; }5 ^" L% v3 s! {
PDesc STRUC4 F, A) k- T3 K/ S/ o9 O" {
  Limit DW 0  
$ U3 H: I1 \1 o1 M  Base DD 0  : z/ b  n" @5 h$ I  |
PDesc ENDS
2 ?$ y8 a! m$ J: b: K
3 f0 |( M# V3 u9 ~6 O9 \# D/ M- MGDT_def Label Fword
" D) ]3 _2 i' ~/ K: CNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>/ b  q+ q* B6 |
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>" E1 s' O  p6 ?" }8 |( z
5 |1 U; `# c9 O5 t
GDT_Addr PDesc <$-GDT_def-1, >
& H5 t/ K( S1 Jcmd DD 255(0): X" x+ j) K- Q! L$ n+ I5 i

/ F& k$ s2 U7 ?" h5 P- _.code+ K4 @8 o, Z& m( |1 w' d3 o
main proc3 L' \% l6 K+ j9 {+ \
  call Set4gb
" |( r8 [2 N3 r  r! h! D+ b0 \, h( b5 y
" M9 K1 _4 q% f6 x* W* I5 t9 L  mov esi, 20000100h  _4 ?# Z; W& `, V1 U% s5 O$ D6 J
  mov dword ptr fs:[esi], 055aa55aah7 B- s. ^) r" @3 G* a
   
! R1 Y, O% ~' B% V& m  .exit/ \( ^+ L$ s7 D& D
main endp   % O0 J) s+ F, V
1 W+ g2 b/ r! s: @8 a8 d* \5 u
Set4gb PROC NEAR
  D! y* O) F% e$ @: e  in al, 92h. s% _0 q, L0 O& R1 |
  or al, 002
5 p: f# ^% g. Q9 \; R2 t  out 092h, al
8 a* `! v8 n% K- z* k9 V  out 0edh, al
( }: v) m9 Q9 G9 P, @0 L5 k- |, x- l& x5 s& b2 o/ B* }
  cli
1 ~* t+ n, \. Q, B  ]3 \3 f" s8 ^3 y7 ?  f0 `* O/ Y
  mov eax, ds" \) u: B; O) I% q" ~8 U  n
  shl eax, 4
% O) s' [; R) j8 K  xor ebx, ebx
- J( Y; O$ D- t$ }  i  mov bx, offset GDT_def
' X: r2 a5 Y: V, R/ W* ~# K3 D  add eax, ebx  s8 n' `7 q( N! _* X
  mov dword ptr GDT_Addr.Base, eax
9 u8 p( U9 @& w; X8 Z  lgdt fword ptr GDT_Addr
; U" }) @0 k% U# ?& }, h: o
1 M. ~* [2 @, A" l1 t  mov bx, 8
4 c- e- T7 p, N3 |- y7 F  mov eax, cr08 _% F2 o( v2 K7 H& q! ?
  or al, 1
5 n$ k8 S- e$ }1 k8 @; [; p: w- u  mov cr0, eax$ X0 Q' ^. w7 j. ?$ H( g: d/ B) m" [

$ b( m  u/ G2 n' e  jmp pMod
' Y2 A3 o- @' w6 M' A: I  pMod:
5 K' Q  G$ O5 o# A, d1 ]* s  J
, x8 v! }% D! d4 y. h" {! N  mov fs, bx( A' @/ ?9 ~( S) _
  mov gs, bx% y  [# M' |, s
  and al, 0FEh+ |  Q$ A5 g% B1 s
  mov cr0, eax
5 V! {+ `, k0 ^' D8 C+ A   
1 {' B( S1 d- K: t  jmp rMod
* P' S, t: O4 {) H& d  rMod:1 Z" k* d' _/ }$ q& \
/ b+ D3 u; k0 t' s5 ?$ `7 q2 z' h
  mov ax, 0
) k1 m* s2 I* @4 s2 j  s  mov fs, ax
2 K% V  e4 V/ l- x  mov gs, ax  N' |6 Y( I: {/ W' \" I
   
: p% g, ]0 L- M' W+ ?% b  m    ( G. X! h1 n& n* R5 d
: a* m: e; }1 l. ]' x+ L
  sti+ x7 Y0 f+ q8 S  G. \
  ret
3 T! A/ g) X+ D4 `( h+ [0 fSet4gb ENDP
- Q, o* ~) Q$ i+ U. s. u8 s   
6 m' O) ]6 K# l4 _1 Qend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-8-11 16:57 , Processed in 0.048945 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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