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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好, E/ k* Y1 I4 U+ R& i" y5 L
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。) d) G' Q3 E- r. L# \2 U
;---------------------------------------$ G) @* X/ \( A' E8 E( w
$ G( o  G+ u$ ]9 M' X8 {
.model small
9 M+ ^: Y' f6 r.586p6 o" {) v) H+ Q- n! G+ j) R  W8 r
.stack  * b' H8 n; F- D0 w  V0 b: F; x
    3 E3 p' F& K- @- h3 H" |; C
.data
* I) H1 r6 q$ c' b* W
+ o& ]0 x. E6 F) zDESC STRUC
. R2 k, f" ^9 i! U! a9 b" r6 q  LimitL DW 0  
- J  w. J. u- m& C2 l4 ?" T8 {; i  BaseL DW 0  : k8 Q$ v$ ~( M- ]
  BaseM DB 0  
! c1 O. q) R8 `: t' u  Attributes DB 0  
' y7 ]$ S6 n. H! ?+ f  E0 Y  LimitH DB 0  2 Z+ ^: \! }6 o7 S+ Z4 F" B+ q) W
  BaseH DB 0  
" v( G9 ]0 m& H7 qDESC ENDS' C/ {5 Y! Y3 A& @. U5 |( M
1 Q1 v% n4 Z* f9 s  [
PDesc STRUC
0 a& r' V) f; I- Z5 b  Limit DW 0  ' K! a2 k$ r7 r9 i
  Base DD 0  0 |' |# c/ G. Y- x6 s/ p
PDesc ENDS
7 u: ?( x9 m$ y$ u" R# ]' h  t
% N( R1 ]6 t1 tGDT_def Label Fword+ h* p) u0 C3 S; T% m, R* P% k7 m3 V
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>  [: J) h1 ^3 }5 h! T  E
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
9 R) S" t  a1 K
- _. z9 ~; W3 U$ ]GDT_Addr PDesc <$-GDT_def-1, >
  X% t3 A8 j" |" z1 F; J( \cmd DD 255(0)
! z5 D6 y" u' p6 \9 o- o: m9 q3 O: @! V
.code; b  u) U  `( S# o
main proc9 Z$ w% i# D8 w! T. L; |
  call Set4gb
  h" U2 ^5 ]8 ?& ]- L9 P6 t. q" n4 h0 n& ^. [2 X+ p
  mov esi, 20000100h
7 I0 v1 {4 d% A9 p  mov dword ptr fs:[esi], 055aa55aah' J: N! G, f3 Y6 e+ O- C9 }; I
   
) G2 y0 G4 t( A5 @  .exit' {8 M2 T) F- O
main endp   " K9 J) J1 g5 h1 }" F2 }

" ^# k- [( Q/ U' ]+ f' fSet4gb PROC NEAR; a  j+ `- ^& q# T" k4 v/ o+ {$ u
  in al, 92h
/ m$ ~1 l7 q) ]$ L0 [  or al, 0024 U2 c6 G# b, g/ m7 q( S5 W
  out 092h, al
' P# [7 g) J7 @' _7 n  out 0edh, al
8 P$ N3 X2 @6 N1 g+ R
4 e6 U! W. g$ ?7 l  cli
" r" g8 C, d5 w$ C3 u& z! X# A) W0 f* o; y
  mov eax, ds4 {# j0 M* T, N! R2 {9 g/ t5 d( R
  shl eax, 4& T6 e2 l. h' E
  xor ebx, ebx0 j% I6 B3 x0 v! r0 t! @
  mov bx, offset GDT_def, ~* R2 p. l1 l! P
  add eax, ebx& W: ?1 }& k6 b8 J! V6 k. |, S
  mov dword ptr GDT_Addr.Base, eax: z; x) ]% N% u
  lgdt fword ptr GDT_Addr* y' g/ {4 j! M" V' H
1 W2 U7 o% F0 i* s. F" ?
  mov bx, 8
4 t& ^2 P2 j+ I9 }: \  mov eax, cr0' A  w1 `' [( b9 y/ d" W7 H
  or al, 1+ }; Q5 `, }3 {2 U
  mov cr0, eax
- f" S. h7 g1 C0 y) A2 p
% V- b6 x: y: }* m( L: n4 j+ J  jmp pMod# x- }" f& r6 n# I+ u# B
  pMod:
- K; Q5 |) H$ ?) \+ N% l5 `8 C# w- V/ {& D' U
  mov fs, bx+ q, ?7 e$ W1 V7 l: b. l
  mov gs, bx# \% u: [( B+ U8 G" e, F  j; N  l
  and al, 0FEh2 }; _% R4 G0 W& Z
  mov cr0, eax
! y& v: ~# z! ?  M& {   
& m' B, q2 e; E+ `/ c# p  jmp rMod
+ K" O5 Y% h4 v4 i% ^$ i6 s  rMod:) H$ {' M$ R$ M
0 _8 q; X) _9 D6 t9 h4 }
  mov ax, 0. ?9 c* U) P' T" [- _4 z
  mov fs, ax0 Q$ @0 I) T. ~+ Y# E; c7 ^
  mov gs, ax
$ G0 c* }: ]9 S: X- ]# c    , M2 p/ q/ S! k6 k
   
6 y' k; N9 }# l, m) W! r: \& _: |5 \% s
  sti
& ~2 X0 S0 z. }& C5 p+ C  ret
) A- z! U7 g7 y* J6 ]9 u+ eSet4gb ENDP
9 Z; d& M' U/ O) n5 j4 j; O8 T5 a   
! h) c0 {  p: \9 pend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-10-12 08:05 , Processed in 0.167310 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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