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

進入 big real mode 會重新開機

[复制链接]
发表于 2010-10-8 12:43:38 | 显示全部楼层 |阅读模式
Hi 各位高手好
' L0 N, a$ h/ p* j2 [+ o以下的程式是我修改網路的一段程式,我把他修改為,讀出memory的值,並顯示在螢幕上,但是我修改後,當我在DOS下執行它,電腦會自動開機,想請各位前輩幫我看一下,是哪邊出了問題,因為目前的我是沒有頭緒的,麻煩你們了,謝謝。% C+ H+ P  `. j" i# `- Q2 A! J# ^
;---------------------------------------
- D8 f& m: X: S' w7 Y9 W& d$ N
* Q, l% {5 `+ s.model small$ t) z, Q3 n5 \6 n( o/ Z
.586p
6 [  H7 E* K: h* S. u.stack  0 f$ [8 F* K  h( B8 t
   
) X& }6 R6 J( _.data
. G8 V4 _8 a$ G
, M+ u+ T4 s. E7 f+ S, S" W, o5 pDESC STRUC
) s# `9 E) I! u0 ?6 a6 ^  LimitL DW 0  
. u# J7 w# l% R7 ^) {9 R$ R  BaseL DW 0  
6 p; v6 `. n  ^! C3 D! R  BaseM DB 0  # W/ W5 \7 s- P2 w0 a
  Attributes DB 0  3 \- e$ B1 j! ]4 x0 C; |0 e" S
  LimitH DB 0  
! l/ E$ H$ M8 a6 c; n: }$ s  BaseH DB 0  . f% ^; \1 W' [! a. G6 o3 @' j
DESC ENDS
: H6 j9 V0 ^" ~# h3 }1 k$ j
, O& [, O! C4 j! PPDesc STRUC" O% G( G# s4 Y" }9 y2 O3 w
  Limit DW 0  : Z. S) O" h; P& k
  Base DD 0  
1 ~) q- l% S$ P; d( mPDesc ENDS- s! U( }8 S3 m, u( Q9 P) S

( b: w+ x- M# {# a  MGDT_def Label Fword6 Q* `0 t" s$ ]; l; {- \
Null_Desc DESC < 0h, 0h, 00h, 00h, 000h, 0>
' j: O+ l3 ^2 \$ a# o- q( `Data_Desc DESC < 0FFFFh, 0h, 00h, 92h, 0CFh, 0>
. X8 Y, s% {  D( }
% g8 P, X, p" u! p1 }2 o0 PGDT_Addr PDesc <$-GDT_def-1, >- k- V( J" l, M- N4 P; V4 y% I
cmd DD 255(0)
3 r  q" z, U( F0 L5 `8 U# ^3 B& B. B: t9 r/ b+ i9 m* x
.code
' I, A5 s  p: f6 cmain proc, ?, Y. Q1 N# r& `& D0 d
  call Set4gb' c9 y  A' o/ j
* O3 _& D! Y1 F" @
  mov esi, 20000100h
( f$ Z: @$ N4 R. Z, y" }2 d  mov dword ptr fs:[esi], 055aa55aah+ @/ U( E7 x& n" }+ c4 Q) O
    4 @6 [& s0 U; q3 E, c9 r+ F7 \
  .exit
3 s( B3 i" K$ C, ~0 H* wmain endp   
5 X# E4 p: J8 _, C5 m
5 y8 O) n7 X& h  o, n# X$ i& ^Set4gb PROC NEAR; n( N# F# H8 p! d. E5 e1 H0 `
  in al, 92h" l5 a* ~4 X. t8 o& T4 h: l4 j
  or al, 002
6 f" c; \* S. B% u5 U, v  out 092h, al+ U3 A  I3 |; Z; ~
  out 0edh, al) A4 f& c2 m" _- ^
7 ?( |, Q+ c% z% o: ]  y
  cli; I7 S+ N6 U% U

) g& u& X0 b1 B$ L9 k& R! q9 b  mov eax, ds: y4 r# q& ]( [" k; H
  shl eax, 4* ~, o' L* w! e; w6 u
  xor ebx, ebx7 }3 D% `/ I. G; g! J' u6 a
  mov bx, offset GDT_def0 E  i& W2 }6 ^: H* d) f
  add eax, ebx
7 y9 |8 Q! [6 {# t" C3 {" g# {  mov dword ptr GDT_Addr.Base, eax
) d& h; J5 W# O9 [9 f* n  lgdt fword ptr GDT_Addr
* Y" ?# h8 b" N' g
$ S/ p' |& s! z+ s  E6 @% z1 w  mov bx, 8
  e3 b. ]/ W) a3 ^7 P, t  mov eax, cr0
+ Y% p. L# O9 d' z. x  or al, 1
* q; u! U$ |' p/ u/ `; @  mov cr0, eax
$ O1 d( r/ c0 A
* U8 y( ~) N# n! C  jmp pMod
; P" B# S9 H/ d7 U2 Y, Y  pMod:
8 T5 V* i3 r+ d
8 Y  v- N# F% x  mov fs, bx
. P" j# ?4 q" N! ~2 l  mov gs, bx
' L- h6 h/ x1 }) x1 F4 Y/ @  and al, 0FEh
) q5 i0 f- {6 `5 c" f  mov cr0, eax" p6 b: v& e8 E1 S8 ]
   
3 e- ~- x- N: G3 ^: Y# l  jmp rMod" ], m9 }; I$ k7 n  K+ A
  rMod:0 I& N4 ~, _# m) g1 @) Z

+ l0 L8 f7 \+ k$ ?) Y% @5 i6 H# E  mov ax, 0, a  u( M9 Q8 ^
  mov fs, ax: X8 U  t. A& I. N/ l
  mov gs, ax
5 K/ A" [7 @) y( R! X* U2 Z    ( l6 r2 M7 p6 q0 G! x# f2 v
    . K- P3 E. @  ?' t6 `

0 b1 P7 w3 G& f) J. w. A2 F  sti# Z. M1 u. z* a, b, \
  ret% B1 A' U) R- X$ T7 a5 Q
Set4gb ENDP
# p3 [/ Q% }  q9 L    1 B+ z/ \6 B; P3 H% S( v
end main
您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

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

GMT+8, 2026-1-12 05:35 , Processed in 0.109506 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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