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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好, ^/ ~6 r' e' o
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。6 U& K' P; r: s' E
;---------------------------------------$ A+ M1 M5 j9 y4 R3 R$ H: |

+ _) _( `3 k% A4 I* x8 S# ^# E.model small
6 G7 I/ x) ]8 o- G5 h.586p
6 J( e: }5 ]. K" E.stack  9 @; M: N) u9 [; R3 K; l8 r
   
" ?  g% h2 j% H7 h0 e- `1 D3 Y- n.data$ j5 f' Y$ o! R( Q% Y0 Z! ?
6 V0 O  V$ w% E" P( M8 b8 N- p  ?
DESC STRUC
8 C8 }( D" h" ?  s. V+ [  LimitL DW 0  $ T2 r3 p4 d0 [  ?4 T* S
  BaseL DW 0  4 W7 u2 ?; o$ e$ D, l* u
  BaseM DB 0  
' k! }' K+ A  a* o' Y7 C( P  Attributes DB 0  . P6 q# C5 _8 I9 V" ]$ Q8 m: j
  LimitH DB 0  
$ k+ X. T8 @8 {  m4 m) v: s  BaseH DB 0  # e, B. v$ i, v
DESC ENDS
9 y# w4 [' W& Y' J, u8 ?, ~! _" d
. s5 D' C) f8 ]! [& Y/ a% HPDesc STRUC
0 l6 I$ j% |$ M) v# P  Limit DW 0  
1 Q  x; ?  f6 |7 l- x0 L  Base DD 0  " J4 ?( H" |: m. S4 m
PDesc ENDS7 u+ X  N" r0 i+ u$ @4 U

& K. Y5 i: \9 a$ G* ZGDT_def Label Fword
* c. o( I( l% J8 V1 s  M+ mNull_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>5 U1 l) ?  r- F# b7 p& x0 v
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
. i5 ^' I2 b& G, I. {( Y% P# S- _8 f3 [
GDT_Addr PDesc <$-GDT_def-1, >* ]) E( X( _* |, _9 ?
cmd DD 255(0)) N( G/ Y) [% O0 K+ x, v
" y6 o' E/ [) ~: Y! L8 i. p- B, F
.code
' U6 v3 K' U  i& `2 s8 U: Xmain proc7 @3 u+ a2 \& m& m! J
  call Set4gb
* ?2 S: t: g- G1 ~- v; y5 a4 `3 W" |
  mov esi, 20000100h  F5 V( F; A: h  X2 ~
  mov dword ptr fs:[esi], 055aa55aah
5 B1 i5 f  Q! u4 ~$ f    ( l% c7 }3 A6 L; J" i; X
  .exit
7 [% \0 v- T8 d$ |main endp   5 A8 W$ l3 e! b: L( d
- n- h6 x8 D5 @* M1 |+ N
Set4gb PROC NEAR
7 V5 |: U1 C7 f" }; J+ ^% I  in al, 92h
* }5 A& u9 Z  I& L5 k' T9 o  or al, 002) G% |: N) R6 O" W9 m
  out 092h, al8 n4 t5 ~/ x* N7 r
  out 0edh, al
$ [; e! Q- m$ o+ m8 C1 _  q) V& ?1 k7 i" R+ A4 U. v
  cli
0 x; V7 A/ S' K5 {* A  L: Y3 P/ P" D) n! i4 h' B2 v& O
  mov eax, ds
+ R% }$ n8 _8 W  shl eax, 4
: |0 l% l8 K; \  xor ebx, ebx6 T  d3 x! R2 H; {7 e4 O
  mov bx, offset GDT_def- r! w& Y( K* Q% d  F9 Z$ J& T( \
  add eax, ebx
: e2 D" t. b/ X0 h* h  mov dword ptr GDT_Addr.Base, eax
% ?6 x* T6 s* x, N( E* u. p  lgdt fword ptr GDT_Addr; |5 C. l+ B1 n; G  E7 T
5 G* ?) ~% s- D8 E; U* i
  mov bx, 8- M2 X. p& h4 f/ Y
  mov eax, cr0
0 Z5 M2 i, Q2 Y0 U) m  or al, 1
  A. E. i! A3 P- I  mov cr0, eax
8 N8 d; g" z  T7 \9 O( {% F. v
; S* A2 g! A6 ~3 Y, ^: M  jmp pMod6 f, n, h5 P) {5 Q' h$ J* j" d
  pMod:
# ?- b  j- N- ~# \3 [
& S& }1 E% y; H  ]. g2 R/ h  mov fs, bx; g: E+ x2 M- Q
  mov gs, bx6 G  e( x! s% Z4 m
  and al, 0FEh
' t) g! l6 M' c: T7 V  mov cr0, eax
' I% K' O4 _7 o0 Z* R# U    ; p, i$ Y: u2 V1 w; G9 v
  jmp rMod, J3 Z9 M3 L. x+ ]
  rMod:
$ F' S% V/ I. h2 O4 Z4 s9 j% j8 x8 S4 g1 m: a$ G1 ^" t9 I
  mov ax, 0
6 ], F6 o" \  Q0 y% r! l/ M  mov fs, ax
# e& w3 x4 v( I7 R  mov gs, ax/ k9 O0 u: J. j. p! k) C; r
   
0 a  d: e/ u9 ~( j  \% L# ~    ) ]% G, ]6 \8 V6 ?

/ ]1 M4 t+ n* ^! r( i8 J  sti
6 m7 v; G5 j8 f. n. ^9 v3 B  ret/ q" a8 \  W+ D! B
Set4gb ENDP. C; r* l2 N; r# }9 o
   
( i' A% t6 [: s; Xend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2024-5-19 11:33 , Processed in 0.019703 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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