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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好* u4 z" D  ~9 r5 ]9 h  i# c! }& ]
以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。: N+ \" p& g4 @* Q
;---------------------------------------2 E- e! [. x" R" m

" Z' x4 W- g% |- z6 {& W+ m.model small  w& J' c/ D/ l2 G9 g
.586p2 j- |) w; g3 Y0 K( V( Y1 Q! Q5 i: [
.stack  - H7 W% Z( c8 E# R% d0 C
   
) B- c# C4 _$ e8 [# L- `2 w.data: T8 X& D: R& C) h9 l% l3 c& v
7 {1 ]9 o) m$ \! E9 W2 D
DESC STRUC
* p4 b" L) }* `- q  LimitL DW 0  
0 S5 b- f# L: M* }* w/ X( ?  BaseL DW 0  
7 _- e" g& `' r. U  M' D  BaseM DB 0  6 A2 b6 V6 f# m2 c# k5 E- o0 `
  Attributes DB 0  
% t# v0 z/ w* y) ]  LimitH DB 0  
3 B0 U7 v+ a" Y9 \6 m7 @% T* ]  BaseH DB 0  . @4 v& e% ]) g
DESC ENDS
0 D# `8 l7 X) }- J. b2 Z" u1 G* V4 Z
PDesc STRUC1 i  [+ a0 E/ ~/ Y% G  D
  Limit DW 0  
4 x; G8 K- E9 N+ [  Base DD 0  ; m7 \' D8 u% O& j/ u: P  s
PDesc ENDS3 u/ e: {5 [; Y, Q

% z. o! M) x% q: j* GGDT_def Label Fword5 W- p' a/ I2 o: n6 J2 Z+ g! t
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>) _+ ~- v8 r+ Q( }3 s
Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>8 ^( S" n* g" ~( h

  |7 [4 W, Q) b- _* XGDT_Addr PDesc <$-GDT_def-1, ># D* Z( r5 v+ i: x& E. L
cmd DD 255(0)
0 C# L/ r. b( \, y/ m: m
" S, M6 d! j: h  V.code  t3 _3 H6 R" S' C* }- Z
main proc
6 t/ p) Q4 }; S* T, d7 f  call Set4gb$ X: G: D6 B% d
1 Z( T% o9 L5 p, R1 R
  mov esi, 20000100h
: h9 i( I! [$ o9 F3 p+ ]4 d9 X' o  mov dword ptr fs:[esi], 055aa55aah
7 q# \, z! k. x' ^) \- K2 x   
: O- X( e: Z0 m' r  .exit
! [6 n( S* s- e" g1 {main endp   & E8 b' h6 x6 @6 x1 q8 q+ ^2 P5 N
& r8 @7 C$ v) n5 q+ ^- j" P5 }" F
Set4gb PROC NEAR* U: E" h/ V, Z
  in al, 92h
! z) T+ s3 w& B& B- d7 k  or al, 002
. t. s; a1 V: c0 t9 `. n  out 092h, al
8 c9 U' Y% u! j, o  out 0edh, al" f/ r1 k/ @. I- T9 V+ W
- g& q( z/ @5 u( A9 e
  cli
$ Y. J8 T$ _' O) J! ?* p; E
, {# j- C# @/ Y  mov eax, ds
3 L0 v: W4 T! {2 Y* Q  shl eax, 4! [+ b* D" @1 u
  xor ebx, ebx+ D# m: `9 O! R8 G; ^* }
  mov bx, offset GDT_def
/ ^; B( j* T1 k/ D. n- v' ~% L  add eax, ebx
& l! y5 u0 q4 A$ C! I  I1 B9 d. Y  mov dword ptr GDT_Addr.Base, eax) ?$ ^; E: b6 x2 Z- w7 w0 K
  lgdt fword ptr GDT_Addr
' [) c; M+ E8 o/ A
. [" G/ W+ H" A: h5 m! Y% ?3 v  mov bx, 8
8 m1 }- L4 y5 @( ^0 A  mov eax, cr0% v" m3 m& I% Z
  or al, 1
* Q3 b: @2 X* T! [2 [: @+ B9 y4 d& Z  mov cr0, eax) b2 u4 P+ P* |3 U5 t3 [
$ {4 o, o) i$ Q. J, v8 B$ t8 N
  jmp pMod  J4 s) }7 Q% j) y6 W( n& J
  pMod:" J3 k6 w" h/ E- b+ Q
! L1 K8 i, k6 ~
  mov fs, bx% q3 D# R4 e% S/ R2 e
  mov gs, bx
7 }( I5 C6 |- F7 x$ [$ G$ b  and al, 0FEh/ q3 n8 I7 e) V( `: g! s
  mov cr0, eax
' Q8 I" i' E+ S9 D5 K' `8 @6 }    : q6 M. g1 b4 d" ?3 l; A5 {' e) r
  jmp rMod4 x0 z9 g8 L, e, O# M7 i
  rMod:
- \5 ~8 \+ X5 j  S( x. x; i$ _( ?" l2 n- I( w
  mov ax, 0$ p; j) i+ {! v
  mov fs, ax
9 }2 G- r; g5 B$ \$ l  mov gs, ax
8 M+ _7 c2 B# P9 O   
+ v' E% z. {- Q8 w   
$ O6 u3 m) F3 Q( @6 t8 D+ y! |( m+ w4 i0 @) W
  sti$ c4 |4 O* x: f, _/ L
  ret3 Z: K# y8 s! V; }
Set4gb ENDP
# h3 @# C) D4 `8 q   
8 G" w" J1 X+ H, M; ^end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-3-5 17:36 , Processed in 0.072121 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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