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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好* r! y6 a2 h" s# A9 j: C: H* F
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。8 M; b+ ^, }" V) B: e  F( x
;---------------------------------------
7 G0 \7 @* s' O
! h6 Q0 `/ Y3 G.model small6 Y; L& u; m3 A  h* b
.586p* L% Z9 P5 r; R1 j
.stack  : M: ?4 m  b+ Q
   
- A  n" ?' `# B% X.data
- ?& D. }  |; T, _! T
$ M2 Q' P7 r6 b' s9 NDESC STRUC! n4 A' i( k4 ]* ?8 T
  LimitL DW 0  $ }: w  t& o8 F* h0 `+ \8 ]4 t
  BaseL DW 0  
1 V1 Z8 {; q! i, |3 K& p4 Q  BaseM DB 0  ' T5 _7 q' W. v: D6 u
  Attributes DB 0  + q7 x6 f& s: N. Q2 M' Q
  LimitH DB 0  
! A) J/ {0 v! s" x) d  BaseH DB 0  
; }' }3 j2 S7 \DESC ENDS
5 i" D1 A4 g! @: M
: r% f* J5 \" K& \PDesc STRUC
& H6 L# T& u+ Z% P! w% b+ }6 Q  Limit DW 0  # ]: ^( W8 l$ G: a
  Base DD 0  
, U3 w! o& ]5 D0 `8 ]6 Q- qPDesc ENDS
, D# z  E/ h) \- O0 X6 C0 }+ L1 s! p/ Z- M2 W
GDT_def Label Fword- w$ ~5 q( b4 l% `, L
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
4 W- q( _+ I% c( x' h' t2 Z0 TData_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>7 u& t9 o  v! m$ F9 R$ G% C

$ K. T" ]9 O" |# I0 RGDT_Addr PDesc <$-GDT_def-1, >
5 |+ l" h! D% i& X5 E/ t/ ocmd DD 255(0)1 N2 ?* |- `3 Y1 m- m. _

8 p1 A& G9 V/ G0 I( K' b.code$ T+ B6 R! L% `( g5 _  e0 w
main proc
; t0 Z, X) l$ u) }( t  call Set4gb
' Z5 t; `2 ]4 K3 ]1 F: ~( n; \: Y
$ Q" O) K) K5 a+ [6 A" {  mov esi, 20000100h) t# `' _% |9 y1 \0 Q: n
  mov dword ptr fs:[esi], 055aa55aah% H* s" l7 A2 l0 j1 ^$ c8 j' V' u0 h
   
2 U( }+ v5 \# X9 }$ I( W% Y  .exit
; A1 p! Z5 U1 m8 E8 dmain endp   , ?9 v7 n$ ~6 Q( \  a2 h
* d" [4 o* M# ~
Set4gb PROC NEAR+ X& H5 Z( X9 ]* C( v) w( S
  in al, 92h
) m* a  h' p( d9 O' n  or al, 002
% w. p; L  Y; `& l  out 092h, al
- a5 o3 w) ?$ s5 H3 l. v' F# Y2 k  out 0edh, al; y4 c) j; ^* }# K% s+ j! ^$ Z) }( S
# R: F1 ]* H0 y4 W) s" c0 @  P
  cli
; c3 D; m9 H( D$ U* Q* G
6 m0 N) @9 m6 f* L  mov eax, ds
6 u- j& s% t9 S2 D/ Y2 z  shl eax, 4
% Z4 z" Z. e) P/ S  P& B2 W  xor ebx, ebx
' O, ?9 b! q$ I; P  mov bx, offset GDT_def
# C7 Y( u0 t$ `* L$ m  add eax, ebx: M, g: }' k7 b1 F1 V
  mov dword ptr GDT_Addr.Base, eax2 ^- B, m) k. I" j% k/ f- R6 J
  lgdt fword ptr GDT_Addr
" m) G; T) T0 ^  Y- h2 \& f# i4 V5 e% x0 G/ J2 h) `
  mov bx, 8
" z2 \+ E2 b# ~7 s: H0 _8 f  mov eax, cr0
; ^. j0 j1 S5 c* F$ G  or al, 1
) }4 w* A  P: z. z: q$ A8 T  mov cr0, eax9 Y! u# Y) Q/ I! `
) Q$ ]" d* r; Y
  jmp pMod/ }5 M$ y1 ~4 ]1 e* E% [+ Y7 D
  pMod:% u/ Q6 z$ p" R5 C( {0 I
# M  ?+ h/ j  }, k
  mov fs, bx) E# K' p5 g  i
  mov gs, bx
: X' M! q) g. Q, c, s  and al, 0FEh0 l8 q7 A4 V8 C# F3 b" p
  mov cr0, eax7 o  X& C: z8 c3 P# Y0 B
    # @  V$ k2 S; r4 m6 J5 Y+ c4 G  Y
  jmp rMod" D7 \" U- f8 Z7 f/ p5 ?) |
  rMod:% z' d( r# B  g8 F
( j8 Q+ V9 U0 f
  mov ax, 0% E' O3 L5 @4 s5 h, n* k0 y. ~
  mov fs, ax' n/ F: }6 W; V) y% a5 X7 p
  mov gs, ax
# I; J8 I$ G8 y$ d1 W   
5 g( G1 x3 _! I" @$ W% \* [   
# ]$ y0 I5 f. U0 _
. K+ h- i" {- B, W1 D( X  sti
% e- L4 b5 t! W: a0 Z  ret  B; Q, D! K) _/ v0 v; T
Set4gb ENDP
' s8 J, B6 C* c2 W2 g   
; y+ C3 S7 x3 N: z0 Nend main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-9-18 20:10 , Processed in 0.050529 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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